Resources

Questions

Direct answers to the questions people ask about auditing, diagnosing and fixing a website.

api

What does a 429 response mean for my site?

429 means a client asked too often and was refused. When it is your rate limit working correctly, and when it is costing you crawling and visitors.

Read
Why does my API work in Postman but not in the browser?

Postman is not a browser and enforces none of the rules a browser does. Which rule is stopping you, and why the request succeeded anyway.

Read
What should I check before exposing an API publicly?

An API that was internal becomes reachable by anyone. What an anonymous request returns, which origins may call it, what its errors reveal, how it limits use and what it lets caches keep.

Read

availability

How do I check the HTTP status code of a page?

One command gives the status without downloading the page. How to see every hop of a redirect, and why the browser address bar hides the answer.

Read
Why does my page return 200 instead of 404?

A page that says not found while returning 200 misleads every automated client. Where the mismatch comes from, and how to make the server tell the truth.

Read
Why do different tools report different status codes?

One URL can honestly return 200 to a browser and 403 to a checker. The four things that make a server answer differently, and which answer to trust.

Read
Should I redirect a page I deleted, or let it return an error?

Redirect when an equivalent page exists; return 404 or 410 when none does. Why redirecting everything to the home page is the wrong middle ground.

Read

cookies

Why is my cookie not being set?

The server sends the header and the browser silently discards it. The attribute combinations browsers reject, and how to see the reason instead of guessing.

Read

dns

What should I check after changing DNS?

A DNS change reaches people unevenly and takes other services with it. What to verify, in what order, and what to leave running meanwhile.

Read
How do I move hosts without downtime?

The sequence matters more than the tools. Lower the TTL first, have the new host serving before you point at it, and keep the old one running.

Read
Why does my site work on Wi-Fi but not on mobile data?

A site that loads at home and fails on a phone's mobile connection is usually reached over a different protocol or resolver there. The causes, starting with IPv6.

Read

email

Why did email stop working after a DNS change?

Mail depends on records nobody thinks about when moving a website. Which ones disappear, why the failure is silent, and how to restore them.

Read

images

Why do my images look blurry on some screens?

An image that is sharp on one monitor and soft on a phone or a high-density display was usually served too small for that screen. The causes, and how to tell them apart.

Read

infrastructure

How do I find out where a website is hosted?

The address a domain resolves to, the network that owns it and the headers the server sends usually identify the host — unless a CDN sits in front, which is the common case.

Read

performance

Why are visitors seeing an old version of my page?

Four caches sit between your server and a visitor, and each one expires on its own schedule. How to find which is holding the stale copy.

Read
Why is my website slow?

Four causes account for most slow websites, and they need different fixes. How to tell which one you have before changing anything.

Read
Why does my Lighthouse score change every run?

A laboratory run measures one load under conditions that change between runs. What actually varies, and how to get a number worth comparing.

Read
Why did my Core Web Vitals not improve?

Field data moves on a 28-day window and is measured at the 75th percentile. Four reasons a real improvement has not appeared yet.

Read
Why is my site fast for me and slow for visitors?

You are the least representative visitor your site has. The five advantages you have, and how to measure without them.

Read
Should I self-host my web fonts?

Loading fonts from a third-party service used to be justified by a shared cache that browsers no longer have. What self-hosting changes for speed, control and privacy.

Read
Why is my mobile performance score worse than my desktop score?

The mobile test simulates a slower network and a much slower processor on purpose. Why the gap is expected, and when it points to something worth fixing.

Read

security

Why is my CSP blocking my own scripts?

The console names the directive and the blocked URL. What each common refusal means, and why 'unsafe-inline' is the wrong first fix.

Read
Why do my security headers disappear in production?

Something between your application and the visitor is rewriting the response. How to find which layer, and why the origin is the wrong place to look.

Read
Are security headers enough to secure a website?

Headers instruct the browser. They cannot fix the application behind them, and a perfect header grade says nothing about what the server does.

Read
What should I do if I find an API key in my frontend bundle?

Anything in the bundle is public. Rotate first, then work out whether the key should have existed at all — removing it from the code is not enough.

Read
Does my site need a web application firewall?

A firewall buys time against untargeted traffic and hides nothing else. When it earns its place, when it costs more than it saves.

Read

seo

How do I check if a page is indexed?

Three ways to check whether one URL is in Google's index, what each of them proves, and why a site: search is the least reliable of the three.

Read
Why is Google indexing the wrong page?

When Google picks a different URL than the one you wanted, it has chosen a canonical. The signals that decide it, and how to find which one is losing.

Read
How do I test my robots.txt file?

How to check that a robots.txt rule matches what you meant, using prefix matching correctly, and why the wildcard group is not inherited.

Read
What happens if robots.txt is unreachable?

A missing robots.txt and a broken one are treated very differently. Why a 5xx can stop crawling of an entire host while a 404 changes nothing.

Read
robots.txt vs noindex

They solve different problems and cancel each other out when combined. Which one stops crawling, which one stops indexing, and why order matters.

Read
Why do some pages never get crawled?

A page that is never fetched is a discovery problem, not an indexing decision. The five reasons a crawler never reaches a URL, in the order worth checking.

Read
How do I check if my sitemap is working?

A sitemap that returns 200 can still be doing nothing. What to verify in the file, what Search Console reports, and which errors matter.

Read
How do I check whether JavaScript content is indexed?

Compare the served HTML with the rendered DOM, then check what Google actually rendered. The three views, and what a difference between them means.

Read
How do I verify a crawler is really Googlebot?

The user agent string proves nothing — anyone can send it. The reverse DNS round trip is the documented check, and there is a published IP list.

Read
Why are my pages not indexed?

The causes of a page not being indexed, in the order they must be ruled out: reachable, permitted, unique, and worth indexing.

Read

transport

301 vs 302: which should I use?

Permanent or temporary is a decision about the future, not about how long the redirect has been there. What each one commits you to, and the cost of choosing wrong.

Read
Why is my redirect not working?

A redirect that does nothing, loops, or sends visitors somewhere unexpected has a small set of causes. How to find which layer is answering.

Read
What happens if I change a 301 to a 302?

Switching a permanent redirect to a temporary one does not undo it for browsers that already cached it. What changes immediately, and what does not.

Read
How do I verify redirects after a site migration?

A redirect map is only as good as the URLs it was built from. How to assemble the real list, test it, and find the ones nobody mapped.

Read

Elsewhere on this site