Sitelet https://github.com/msgwing/ZeroSMTP/pull/254
Skip to content

perf(seo): koniec ze zmiana adresu CSS przy kazdym commicie - #254

Merged
msgwing merged 1 commit into
mainfrom
stable-css-url
Aug 23, 2026
Merged

msgwing merged 1 commit into
mainfrom
stable-css-url

Conversation

@msgwing

@msgwing msgwing commented Aug 23, 2026

Copy link
Copy Markdown
Owner

Statystyki indeksowania z Search Console, przeczytane dziś pierwszy raz: 25% żądań Googlebota na tym serwisie to CSS, a wykrywalność to zaledwie 10% wszystkich żądań.

Dwie z pięćdziesięciu trzech stron niosą 78% wyświetleń, 36 stron nie jest zaindeksowanych wcale — a robot spędza ćwierć budżetu na ponownym czytaniu normalize.css.

Przyczyna to jedno wyrażenie Liquid

Adres arkusza doklejał site.github.build_revision — SHA commita — więc każdy commit produkował inny URL dla pliku, który się nie zmienił. Trzydzieści commitów w dwa dni to dla robota trzydzieści arkuszy stylów.

I nie kupował nic

Sprawdzone na żywej odpowiedzi, nie wyrozumowane:

Cache-Control: max-age=600
ETag: "6a8ad228-2635"

GitHub Pages już obsługuje świeżość. Bez bustera najgorszy przypadek to arkusz sprzed dziesięciu minut, a ETag zwykle zapobiega nawet temu. Buster rozwiązywał problem, który CDN już rozwiązał — i kazał za to płacić budżetowi indeksowania.

Czego to NIE naprawia

Prawdziwym problemem jest pozycja. Dwie strony niosące wyświetlenia siedzą na 36 i 54 — czwarta i szósta strona wyników — i żadna ilość budżetu indeksowania tego nie ruszy.

To uwalnia budżet, żeby robot znalazł strony, które już są napisane. Wypozycjonowanie ich to robota z HP i IIS.

Search Console crawl stats, read today for the first time: 25% of Googlebot's
requests on this site are CSS, and only 10% of all requests are discovery. Two
of fifty-three pages carry 78% of impressions and thirty-six pages are not
indexed at all, while the crawler spends a quarter of its budget re-reading
normalize.css.

The cause is one Liquid expression. The stylesheet href appended
site.github.build_revision - the commit SHA - so every commit produced a
different URL for a file that had not changed. Thirty commits in two days is
thirty stylesheets as far as a crawler is concerned.

It was buying nothing, and that was checked against the live response rather
than reasoned about: GitHub Pages serves this with Cache-Control max-age=600
and an ETag. Without any buster the worst case is a ten-minute-old stylesheet,
and the ETag usually prevents even that. The buster was solving a problem the
CDN had already solved, and charging the crawl budget for it.

Worth noting what this does not fix. Position is the real problem - the two
pages carrying the impressions sit at 36 and 54, which is page four and page
six - and no amount of crawl budget moves that. This frees the budget to find
the pages that are already written; ranking them is the HP and IIS work.
@msgwing
msgwing enabled auto-merge August 23, 2026 10:59
@github-actions github-actions Bot added the docs label Aug 23, 2026
@msgwing
msgwing merged commit cd0d11e into main Aug 23, 2026
34 checks passed
@msgwing
msgwing deleted the stable-css-url branch August 23, 2026 10:59
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant