Independent SiteAuditLint analysis
SiteAuditLint crawled 100 URLs on seo-hacker.com. All 84 critical items trace to one tracking setup: the GA4 measurement ID is hard-coded in the page template and also fired by Google Tag Manager, so page views are likely counted twice. The other large pattern is a split between two domains, with service pages now on seo-hacker.net while the sitewide navigation still links to their old seo-hacker.com URLs.
| Metric | Result |
|---|---|
| Pages crawled | 100 |
| Crawl time | 34s |
| Health score | 93 / 100 (Excellent) |
| Issue types detected | 26 |
| Critical / warnings / opportunities / info | 84 / 193 / 261 / 14 |
| Audit date | October 23, 2026 |
What stood out
Overall assessment
seo-hacker.com is in strong technical shape. No 4xx or 5xx errors appeared, structured data is present on all 84 analyzed pages, and the Content and AEO scores sit at 100 and 98. The 84 critical items are not crawl or indexing failures. They come from one analytics configuration: the same GA4 measurement ID runs from a hard-coded gtag.js snippet and from the GTM container, which inflates sessions, page views and events in GA4 reports.
Tracking & Analytics is the weakest category at 64, well below every other area. The container also still holds Universal Analytics tags, and the LinkedIn Insight Tag is hard-coded in the template rather than loaded through GTM, which makes consent mode and tag governance harder to manage.
The second pattern is structural. Service pages (pricing, SEO services Philippines, SEO company Philippines, contact) have moved to seo-hacker.net, and the old seo-hacker.com URLs 301 redirect across domains. The blog navigation still points at the old addresses, so every analyzed page carries internal links that pass through a redirect before reaching the service pages.
Audit methodology
SiteAuditLint started from the website's homepage and crawled up to 100 URLs by following discoverable internal links and the URLs listed in the XML sitemap. Results represent the URLs reached during the crawl and do not constitute a complete audit of the entire website.
| Starting URL | https://seo-hacker.com/ |
|---|---|
| Crawl limit | 100 URLs |
| URLs crawled | 100 (97 HTML) |
| Crawl date | October 23, 2026, 15:27 UTC |
| Crawl duration | 34s |
| Crawl method | Homepage start, internal link and sitemap discovery, robots.txt respected, raw HTML analysis |
| Tool | SiteAuditLint Desktop SEO Crawler |
| Scope | Publicly accessible URLs reached during the crawl |
Technical SEO scorecard
Scores are the category scores SiteAuditLint calculates as part of its Site Health Score.
| Area | Score | Key finding |
|---|---|---|
| Overall health | 93 | Excellent rating from SiteAuditLint |
| Technical | 90 | 14 internal URLs redirect, 10 of them to seo-hacker.net |
| Content | 100 | No thin pages, no exact or near duplicates |
| Performance | 94 | 23 slow responses, mostly category archives |
| AEO | 98 | All 9 AI crawlers allowed, llms.txt present |
| Tracking & Analytics | 64 | GA4 fired twice on 84 pages |
Major findings
1. GA4 sent by page code and by Google Tag Manager
HighFinding: The GA4 measurement ID G-7RKDG5HP8E is hard-coded with gtag.js on all 84 analyzed pages, and the GTM container GTM-5QRXZTV sends the same ID.
Why it matters: Two GA4 configurations for one property usually count each page view and event twice, which distorts sessions, engagement rate and conversion reporting. See the tracking and pixel audit.
| URL | Evidence |
|---|---|
https://seo-hacker.com/ | G-7RKDG5HP8E hard-coded and sent by GTM-5QRXZTV |
https://seo-hacker.com/aeo-vs-geo/ | G-7RKDG5HP8E hard-coded and sent by GTM-5QRXZTV |
https://seo-hacker.com/seo-philippines/ | G-7RKDG5HP8E hard-coded and sent by GTM-5QRXZTV |
Recommended fix: Keep GA4 in GTM only and remove the hard-coded gtag.js config for G-7RKDG5HP8E from the theme header.
2. Navigation links to old URLs that redirect to seo-hacker.net
MediumFinding: 14 internal URLs returned 301, and 10 of them redirect across domains to seo-hacker.net, including /seo-services-philippines/, /seo-company-philippines/, /seo-expert-philippines/, /seo-pricing-philippines/ and /contact/. All 84 analyzed pages link to at least one of them. /complete-internet-marketing-package-seo/ forms a two-hop redirect chain, and /online-reputation-management/ is listed in the XML sitemap while returning 301.
Why it matters: Every redirect in the navigation adds a request for users and spends crawl budget, and a cross-domain hop sits between the blog and the service pages it supports.
| URL | Result |
|---|---|
https://seo-hacker.com/seo-services-philippines/ | 301 to seo-hacker.net/seo-services-philippines/ |
https://seo-hacker.com/contact/ | 301 to seo-hacker.net/contact/ |
https://seo-hacker.com/complete-internet-marketing-package-seo/ | 2 hops: to /service-packages/, then to seo-hacker.net/service-packages/ |
Recommended fix: Update the menu and footer to link to the final seo-hacker.net URLs, point the chained redirect straight to its destination, and remove redirected URLs from the XML sitemap.
3. Sitewide link to a 404 podcast page
MediumFinding: 69 pages link to https://leadershipstack.com/podcast, which returned 404. The pattern points to a shared component such as the sidebar or footer. Three other external links failed on individual posts.
Why it matters: A dead link in a shared template sends visitors to an error page from almost every page on the site. See the broken link checker.
| URL | Broken target |
|---|---|
https://seo-hacker.com/ | https://leadershipstack.com/podcast [404] |
https://seo-hacker.com/youtube-seo/ | support.google.com/youtube/bin/answer.py [404] |
Recommended fix: Replace the podcast link with its current address or remove it from the shared component, then update the outdated Google Help link.
4. Slow category archive responses
MediumFinding: 23 URLs took longer than 1,000 ms to respond, with a median of 2,390 ms. Twenty are category archives. The five SEO School subcategories were the slowest, between 4,421 ms and 5,090 ms.
Why it matters: Slow server responses delay page loads and reduce how many pages crawlers fetch per visit.
| URL | Result |
|---|---|
https://seo-hacker.com/category/seo-school/on-site-optimization/ | 5,090 ms |
https://seo-hacker.com/category/seo-school/link-building-seo-school/ | 4,981 ms |
https://seo-hacker.com/category/digital-marketing/ | 3,198 ms |
Recommended fix: Enable full-page caching for WordPress category archives and review the archive query, starting with the SEO School subcategories.
5. Missing lang attribute on the html element
LowFinding: None of the 84 analyzed pages declare a language on the html element.
Why it matters: The lang attribute tells screen readers how to pronounce text and gives search engines a clear language signal. It is a single template change.
Recommended fix: Add lang="en" to the html element in the theme header.
6. Duplicate titles on paginated homepage URLs
LowFinding: The homepage, /page/2/, /page/3/ and /page/138/ share one title and one meta description. The homepage title is 29 characters. Separately, /category/uncategorized/ carries noindex, follow with no canonical tag and no meta description.
Why it matters: Identical titles make paginated archives compete with the homepage in search results. See on-page SEO checks.
| URL | Evidence |
|---|---|
https://seo-hacker.com/page/2/ | Same title as the homepage |
https://seo-hacker.com/category/uncategorized/ | noindex, follow |
Recommended fix: Append the page number to titles and descriptions on paginated archives, and expand the homepage title.
7. Legacy tags inside and outside GTM
LowFinding: GTM-5QRXZTV still contains Universal Analytics tags. The LinkedIn Insight Tag is hard-coded in the template, and a Meta Pixel is hard-coded on the homepage, both outside GTM.
Why it matters: Universal Analytics stopped processing data, so its tags only add page weight. Pixels outside GTM bypass consent controls and are easy to fire twice.
Recommended fix: Delete the UA tags from the container and move the LinkedIn and Meta pixels into GTM using their built-in templates.
What's working well
- No 4xx or 5xx responses across 100 URLs.
- 83 of 84 analyzed pages have a self-referencing canonical.
- Structured data is present on all 84 analyzed pages, with Article, BreadcrumbList and LocalBusiness markup, and FAQPage on 3 pages.
- robots.txt allows all 9 AI crawlers checked, and llms.txt is in place.
- No thin content and no exact or near-duplicate pages.
- No mixed content, no missing viewport tags, and every URL within two clicks of the homepage.
Priority fixes
- Remove the hard-coded GA4 snippetOne template change stops double counting. Pages affected: 84
- Link navigation straight to seo-hacker.netRemoves a cross-domain redirect from every page. Pages affected: 84
- Fix the leadershipstack.com podcast linkOne shared component. Pages affected: 69
- Cache category archives23 slow URLs, up to 5.1 seconds. Pages affected: 23
- Add lang="en" to the themeOne line in the header. Pages affected: 84
Crawl data
| Metric | Result |
|---|---|
| URLs crawled | 100 |
| HTML pages | 97 |
| 2xx responses | 86 |
| 3xx redirects | 14 |
| 4xx responses | 0 |
| 5xx responses | 0 |
| Sitemap URLs not returning 200 | 1 |
| Missing titles | 0 |
| Duplicate titles | 4 |
| Missing meta descriptions | 2 |
| Missing H1s | 0 |
| Multiple H1s | 0 |
| Missing og:image | 57 |
| Self-referencing canonicals | 83 |
| Noindex pages | 1 |
| Slow responses (over 1,000 ms) | 23 |
| Missing lang attribute | 84 |
| Pages with question-led headings | 37 of 83 indexable |
| AI crawlers allowed | 9 of 9 |
On-page counts (titles, descriptions, headings, canonicals) are measured across the 84 URLs that returned an HTML page with a 200 status.
Audit limitations
The crawl was limited to 100 URLs and started from the homepage, so only URLs discovered through internal links and the XML sitemap are represented. A 100-URL crawl does not represent the entire website. Findings reflect the site at the time of the crawl on October 23, 2026. SiteAuditLint analyzed the HTML returned by the server, so content added later by JavaScript and responses that differ for automated clients may not match what a browser shows. This audit evaluates technical observations, not overall business or search performance.
Pages on seo-hacker.net were outside the scope of this crawl. Analytics findings describe how tags are configured, not measured traffic.
This is an independent SiteAuditLint analysis of publicly accessible pages. It was not requested or endorsed by SEO Hacker, and it does not imply that SEO Hacker uses SiteAuditLint.