Our Blog
What Is a Non-Canonical URL?
Published on September 17, 2026
A non-canonical URL is a duplicate of a page that search engines index under another URL. When that's fine, when it hurts, and how to fix canonical problems.
Read MoreX-Robots-Tag: How to Use the HTTP Header
Published on September 17, 2026
How the X-Robots-Tag HTTP header works: supported directives, syntax, Apache and Nginx examples, noindexing PDFs and staging sites, and how to check it.
Read MoreTechnical SEO Audit Checklist
Published on September 17, 2026
A technical SEO audit checklist in the order to run it: crawlability, indexability, structure, metadata, Core Web Vitals, mobile, security and international.
Read MoreAhrefsBot and SemrushBot: What They Are and How to Control Them
Published on September 17, 2026
What AhrefsBot, SemrushBot and their site audit bots do, whether blocking them affects SEO, and robots.txt rules to slow down or block each one.
Read MoreHow to Find Orphan Pages
Published on September 17, 2026
Find orphan pages by comparing a crawl with your sitemap, Search Console, analytics, logs and CMS, then decide whether to link, redirect, noindex or remove each.
Read MoreHow to See All Pages on a Website
Published on September 17, 2026
See every page on a website using the sitemap, a site: search, Search Console, a crawler, your CMS, analytics or the Wayback Machine, and find orphan pages.
Read MoreHow to Find Links to Your Website
Published on September 17, 2026
Find sites that link to yours with Search Console, Bing Webmaster Tools and free backlink checkers, then find every internal link to a page by crawling your site.
Read More
Ecommerce Core Web Vitals: Fix LCP, CLS, and INP Across Your Catalog
Published on September 16, 2026
Ecommerce Core Web Vitals fail in predictable ways: product images, unsized tiles, variant pickers, and tag bloat. How I fix them template by template.
Read More
How to Audit an Ecommerce Site for Crawl Waste and Index Bloat
Published on September 16, 2026
Count URLs three ways, find indexed pages that never earned a click, and pick one signal per pattern. The index bloat audit I run on ecommerce sites.
Read More
A Practical Technical SEO Checklist for Agencies That Need to Ship
Published on September 16, 2026
The 200-bullet technical SEO checklist is why audits die in a Drive folder. A time-boxed, three-pass audit checklist you can actually ship in a week.
Read More
Buying a Technical SEO Audit for React and Angular Apps
Published on September 16, 2026
Most SPA audits crawl your index.html shell and miss what Google sees. What a real React or Angular audit covers, and the questions to ask before you sign.
Read More
Auditing Faceted Navigation: Find and Fix Your Crawl Budget Sinkhole
Published on September 16, 2026
Faceted navigation can bury products under millions of filter URLs. Find the waste in your logs, sort parameters, and pick canonical, robots, or noindex.
Read More
The Pre-Deployment SEO Checklist for Developers
Published on September 16, 2026
Most SEO disasters ship in a routine PR. The pre-merge SEO checklist I use, plus a CI regression check that fails the build before traffic drops.
Read More
Auditing at Scale: Crawling 10 Million Pages Without Crashing
Published on September 16, 2026
How to crawl 10M URLs without your tool giving up at 4 million: the URL frontier, storage, chained crawls, orphan diffs, and the log data that matters.
Read More
Fixing Duplicate Meta Descriptions at Scale
Published on September 16, 2026
Exact-match duplicate meta descriptions are easy. The damage is in templates producing thousands of near-identical strings. How to find and fix them.
Read More
The AI Crawler robots.txt Guide: GPTBot, ClaudeBot, PerplexityBot, and the Rest
Published on September 16, 2026
Which AI bots train, which index for search, and which fetch for users. Exact user-agent tokens, copy-paste robots.txt recipes, and how to verify bots.
Read More
Can AI Crawlers See Your JavaScript Content?
Published on September 16, 2026
GPTBot, ClaudeBot, and PerplexityBot read raw HTML and don't run JavaScript. How to test what they see and fix it with SSR, SSG, or prerendering.
Read More
llms.txt: Does It Matter?
Published on September 16, 2026
What the llms.txt spec is, what llms-full.txt really is, who actually reads the file, and a minimal example. Add it, but don't expect rankings.
Read More
Black SEO Analyzer v26.4.16 Release
Published on April 17, 2026
v26.4.16 is a UX polish release for the Windows GUI: right-click context menus, scroll position memory, and a first-run experience that actually makes sense.
Read More
Structured Data Errors That Kill Rich Results
Published on January 28, 2026
Perfect JSON-LD that passes every validator can still produce zero rich results, and slightly broken schema can work for months until it doesn't. Here's how to find the errors that actually cost you SERP real estate.
Read More
Technical SEO for Developers
Published on January 22, 2026
Technical SEO breaks between quarterly audits and nobody notices until rankings drop. Here's how to wire it into your CI pipeline so a failing canonical tag blocks the merge, same as any other test.
Read More
How to Diagnose Core Web Vitals Failures at the Page Level
Published on January 20, 2026
Google Search Console hands you a bucket of 1,247 "Poor LCP" URLs and calls it a day. Here's how to actually diagnose Core Web Vitals failures at the page level using field data, DevTools, and the stuff Search Console won't tell you.
Read More
Why Your Site Audit Tool Is Missing Half Your Pages
Published on January 19, 2026
Your SEO crawler is probably missing half your site and telling you everything looks great. Here's where URLs actually hide and how to test whether your current tool is finding them.
Read More
Hreflang: Why It Breaks, How to Audit It, and How to Fix It
Published on January 18, 2026
The seven hreflang errors I find on almost every international site, with the exact markup, and how to audit the whole hreflang graph at once.
Read More
Why Your JavaScript Crawl Is Broken (And How to Fix It)
Published on January 16, 2026
What Googlebot actually renders, why most crawlers audit your React app's empty shell, and the JavaScript rendering failures I check first.
Read More