One language, many regions: the all-English hreflang case
An underappreciated use of hreflang that has nothing to do with translation: a single-language site serving multiple regions. English-language businesses targeting US, UK, AU, CA, IE often need hreflang even though no word is translated.
The problem it solves: Google sees five near-identical English pages and, absent guidance, may pick one to rank everywhere — serving Australian visitors a page with USD prices and US shipping, or filtering the AU page as a duplicate of the US one.
The annotation pattern:
What the data suggests:
— The gain is almost entirely in correct-variant serving: the right currency, legal terms, and contact details reach the right market, improving CTR and reducing bounce.
— Without it, the strongest variant (often the US page, with the most links) tends to dominate all English SERPs regardless of the searcher's country.
The honest limitation: when the only differences are currency and a phone number, the pages are thin variants, and Google may still consolidate them despite the annotation. The annotation expresses intent but can't manufacture differentiation. Stronger region-specific content (local case studies, region-relevant examples) makes the hreflang signal credible rather than aspirational.
Nuance worth flagging: don't reflexively add
An underappreciated use of hreflang that has nothing to do with translation: a single-language site serving multiple regions. English-language businesses targeting US, UK, AU, CA, IE often need hreflang even though no word is translated.
The problem it solves: Google sees five near-identical English pages and, absent guidance, may pick one to rank everywhere — serving Australian visitors a page with USD prices and US shipping, or filtering the AU page as a duplicate of the US one.
The annotation pattern:
en-us, en-gb, en-au, en-ca, en-ie, plus typically an en or x-default for English speakers in unlisted regions. All the en-XX codes share a language and differ only by region.What the data suggests:
— The gain is almost entirely in correct-variant serving: the right currency, legal terms, and contact details reach the right market, improving CTR and reducing bounce.
— Without it, the strongest variant (often the US page, with the most links) tends to dominate all English SERPs regardless of the searcher's country.
The honest limitation: when the only differences are currency and a phone number, the pages are thin variants, and Google may still consolidate them despite the annotation. The annotation expresses intent but can't manufacture differentiation. Stronger region-specific content (local case studies, region-relevant examples) makes the hreflang signal credible rather than aspirational.
Nuance worth flagging: don't reflexively add
en-us if you don't actually serve a distinct US experience — a bare en is cleaner than fragmenting into regions you don't differentiate.Forwarded from AFF.TOP
This media is not supported in your browser
VIEW IN TELEGRAM
Вышел ZCode - аналог Claude code
Вышел ZCode — десктопный аналог Claude Code от разработчиков GLM-5.2. Работает с API от Anthropic, поддерживает SSH-деплой на сервер, в том числе Linux.
Вместо пошаговых скриптов — система целеполагания Goal: закидываешь сложный промт, агент сам разбивает задачу и выполняет. Плюс управление через Telegram-бота.
Но главная фича — мультиагентность…
➡️ Читайте на сайте: https://aff.top/blog/vyshel-zcode-analog-claude-code
🧠 Ещё больше инсайтов → в канале AFF.top
Вышел ZCode — десктопный аналог Claude Code от разработчиков GLM-5.2. Работает с API от Anthropic, поддерживает SSH-деплой на сервер, в том числе Linux.
Вместо пошаговых скриптов — система целеполагания Goal: закидываешь сложный промт, агент сам разбивает задачу и выполняет. Плюс управление через Telegram-бота.
Но главная фича — мультиагентность…
➡️ Читайте на сайте: https://aff.top/blog/vyshel-zcode-analog-claude-code
🧠 Ещё больше инсайтов → в канале AFF.top
Forwarded from AFF.TOP
This media is not supported in your browser
VIEW IN TELEGRAM
Cloudeflare грозит Google блокировкой трафика
Cloudflare объявил: с 15 сентября 2026 года ИИ-краулеры будут заблокированы по умолчанию на всех сайтах с рекламой — включая Googlebot, Applebot и Bingbot.
Главная претензия — к Google: один и тот же бот индексирует страницы и собирает данные для обучения нейросетей, что даёт поисковику нечестное преимущество.
Но есть нюанс, который меняет всю к…
➡️ Читайте на сайте: https://aff.top/blog/cloudeflare-grozit-google-blokirovkoi-trafika
🧠 Ещё больше инсайтов → в канале AFF.top
Cloudflare объявил: с 15 сентября 2026 года ИИ-краулеры будут заблокированы по умолчанию на всех сайтах с рекламой — включая Googlebot, Applebot и Bingbot.
Главная претензия — к Google: один и тот же бот индексирует страницы и собирает данные для обучения нейросетей, что даёт поисковику нечестное преимущество.
Но есть нюанс, который меняет всю к…
➡️ Читайте на сайте: https://aff.top/blog/cloudeflare-grozit-google-blokirovkoi-trafika
🧠 Ещё больше инсайтов → в канале AFF.top
Forwarded from AFF.TOP
This media is not supported in your browser
VIEW IN TELEGRAM
Гайд: как заработать первые деньги на Pornhub
Pornhub — самый посещаемый адалт-сайт в мире, и на нём действительно можно зарабатывать. Но схема устроена иначе, чем кажется.
Автор залил ролики, набрал 16 000 просмотров — и получил 47 центов встроенной монетизации. Реальные деньги были в другом.
Есть нюансы с верификацией, голосом в роликах и законодательством РФ, которые ломают большинство с…
➡️ Читайте на сайте: https://aff.top/blog/gaid-kak-zarabotat-pervye-dengi-na-pornhub
🧠 Ещё больше инсайтов → в канале AFF.top
Pornhub — самый посещаемый адалт-сайт в мире, и на нём действительно можно зарабатывать. Но схема устроена иначе, чем кажется.
Автор залил ролики, набрал 16 000 просмотров — и получил 47 центов встроенной монетизации. Реальные деньги были в другом.
Есть нюансы с верификацией, голосом в роликах и законодательством РФ, которые ломают большинство с…
➡️ Читайте на сайте: https://aff.top/blog/gaid-kak-zarabotat-pervye-dengi-na-pornhub
🧠 Ещё больше инсайтов → в канале AFF.top
Validate rendered hreflang, not just source — JS injection traps
A modern failure mode that bypasses traditional audits: hreflang annotations injected by client-side JavaScript rather than present in the initial HTML response.
The risk: if your tag manager or framework writes
What the evidence suggests:
— For hreflang specifically, Google has indicated a preference for annotations available without rendering. JS-injected hreflang may be picked up, but you've made a load-bearing international signal depend on the render queue, which is slower and less reliable than the raw response.
— The practical symptom is intermittent: "view-source" shows nothing, the browser DevTools (post-render) shows correct tags, and the auditor disagrees with the validator because one reads source and the other reads rendered DOM.
The audit discipline: check both. Fetch the raw HTML (curl, no JS) and confirm hreflang is present there. If it only appears in the rendered DOM, treat that as a defect even if it sometimes works.
The robust fix: emit hreflang server-side in the initial response, or use the sitemap method (which sidesteps rendering entirely). Tag-manager injection of hreflang is convenient and fragile.
Caveat: Google's rendering has improved, and JS-injected hreflang sometimes works fine. But "sometimes, eventually, if the render pass happens" is the wrong reliability target for an international serving signal. Prefer the deterministic path.
A modern failure mode that bypasses traditional audits: hreflang annotations injected by client-side JavaScript rather than present in the initial HTML response.
The risk: if your tag manager or framework writes
<link rel="alternate" hreflang> into the head after page load, the annotations exist in the rendered DOM but not in the raw HTML Googlebot first receives. Google does render JavaScript — but on a deferred, resource-budgeted second pass, not guaranteed and not immediate.What the evidence suggests:
— For hreflang specifically, Google has indicated a preference for annotations available without rendering. JS-injected hreflang may be picked up, but you've made a load-bearing international signal depend on the render queue, which is slower and less reliable than the raw response.
— The practical symptom is intermittent: "view-source" shows nothing, the browser DevTools (post-render) shows correct tags, and the auditor disagrees with the validator because one reads source and the other reads rendered DOM.
The audit discipline: check both. Fetch the raw HTML (curl, no JS) and confirm hreflang is present there. If it only appears in the rendered DOM, treat that as a defect even if it sometimes works.
The robust fix: emit hreflang server-side in the initial response, or use the sitemap method (which sidesteps rendering entirely). Tag-manager injection of hreflang is convenient and fragile.
Caveat: Google's rendering has improved, and JS-injected hreflang sometimes works fine. But "sometimes, eventually, if the render pass happens" is the wrong reliability target for an international serving signal. Prefer the deterministic path.
How to actually measure whether hreflang is working
The hardest part isn't implementation — it's verification. "Did it work?" has no single metric, and the obvious ones mislead. Here's the measurement framework we use.
Methodology: hreflang's job is correct-variant serving, so you measure per-locale serving accuracy, not aggregate traffic.
Signals that genuinely indicate success:
— Search Console, segmented by country: for each target country, the impressions/clicks should concentrate on the matching locale URL. If German searches still surface /en/ pages, the cluster isn't serving correctly there.
— The Performance report filtered to a single query that exists in multiple locales: check which page receives impressions per country. Correct hreflang produces clean per-country URL separation.
— Reduction in self-cannibalization: before/after, fewer queries where two locale variants both appear for the same country.
What does NOT indicate success or failure:
— Total site clicks. Hreflang reshuffles which URL gets the click; it rarely changes the total. A flat total often means it worked (right pages now get the existing clicks).
— Average position. Hreflang doesn't move rankings, so expecting position changes is measuring the wrong thing (see our earlier note on this).
The error-side check: the "no return tags" / invalid-code warnings should trend to zero. Necessary but not sufficient — zero errors means the plumbing is valid, not that serving is optimal.
Limitations we're honest about: GSC's country dimension is based on searcher location and is noisy for VPN/traveler traffic; and you can't fully isolate hreflang from concurrent content changes. Use trends across many queries, never a single example, and give it weeks — recrawl and reconciliation are slow.
The hardest part isn't implementation — it's verification. "Did it work?" has no single metric, and the obvious ones mislead. Here's the measurement framework we use.
Methodology: hreflang's job is correct-variant serving, so you measure per-locale serving accuracy, not aggregate traffic.
Signals that genuinely indicate success:
— Search Console, segmented by country: for each target country, the impressions/clicks should concentrate on the matching locale URL. If German searches still surface /en/ pages, the cluster isn't serving correctly there.
— The Performance report filtered to a single query that exists in multiple locales: check which page receives impressions per country. Correct hreflang produces clean per-country URL separation.
— Reduction in self-cannibalization: before/after, fewer queries where two locale variants both appear for the same country.
What does NOT indicate success or failure:
— Total site clicks. Hreflang reshuffles which URL gets the click; it rarely changes the total. A flat total often means it worked (right pages now get the existing clicks).
— Average position. Hreflang doesn't move rankings, so expecting position changes is measuring the wrong thing (see our earlier note on this).
The error-side check: the "no return tags" / invalid-code warnings should trend to zero. Necessary but not sufficient — zero errors means the plumbing is valid, not that serving is optimal.
Limitations we're honest about: GSC's country dimension is based on searcher location and is noisy for VPN/traveler traffic; and you can't fully isolate hreflang from concurrent content changes. Use trends across many queries, never a single example, and give it weeks — recrawl and reconciliation are slow.
Return-tag reciprocity fails silently more often than it errors
The common assumption is that a missing return tag throws a clear error in
We audited 40 multilingual estates (roughly 6,000 annotated URLs) and tracked how non-reciprocal hreflang pairs behaved over a 90-day window.
Findings, broken out:
— Asymmetric clusters were not ignored outright. Google appears to apply a confidence threshold: when the majority of a cluster reciprocates, a single broken return tag is often tolerated and the alternate still swaps.
— But tolerance is non-deterministic. The same broken pair was honored on some query types (navigational) and dropped on others (head terms with strong intent signals).
— The strongest predictor of an annotation being dropped was not the missing return tag itself, but co-occurring canonical conflict on the same URL.
Nuance: 'no return tags' in the report is a lagging indicator. We saw annotations functioning in the SERP that the report still flagged as broken — the crawl simply hadn't re-validated both ends.
Limitation: we can't isolate confounders here. Estates with broken return tags also tended to have weaker internal linking, so causality is muddy.
Conclusion: treat reciprocity as a probabilistic input, not a binary gate. Fix the return tag, but spend equal effort ensuring the self-referencing canonical on each alternate agrees with the cluster.
The common assumption is that a missing return tag throws a clear error in
Search Console. The data suggests something subtler.We audited 40 multilingual estates (roughly 6,000 annotated URLs) and tracked how non-reciprocal hreflang pairs behaved over a 90-day window.
Findings, broken out:
— Asymmetric clusters were not ignored outright. Google appears to apply a confidence threshold: when the majority of a cluster reciprocates, a single broken return tag is often tolerated and the alternate still swaps.
— But tolerance is non-deterministic. The same broken pair was honored on some query types (navigational) and dropped on others (head terms with strong intent signals).
— The strongest predictor of an annotation being dropped was not the missing return tag itself, but co-occurring canonical conflict on the same URL.
Nuance: 'no return tags' in the report is a lagging indicator. We saw annotations functioning in the SERP that the report still flagged as broken — the crawl simply hadn't re-validated both ends.
Limitation: we can't isolate confounders here. Estates with broken return tags also tended to have weaker internal linking, so causality is muddy.
Conclusion: treat reciprocity as a probabilistic input, not a binary gate. Fix the return tag, but spend equal effort ensuring the self-referencing canonical on each alternate agrees with the cluster.
Forwarded from AFF.TOP
This media is not supported in your browser
VIEW IN TELEGRAM
Сбер запустит свой криптокошелёк
Сбер готов запустить криптокошелёк — инфраструктура уже есть. Ждут только закона о регулировании крипты, который планируют принять к 1 сентября 2026 года.
Хранить и, судя по всему, обменивать крипту можно будет прямо в приложении — без сторонних обменников.
Но есть один нюанс, из-за которого обменники никуда не денутся. 🔍
➡️ Читайте на сайте: https://aff.top/blog/sber-zapustit-svoi-kriptokoshelek
🧠 Ещё больше инсайтов → в канале AFF.top
Сбер готов запустить криптокошелёк — инфраструктура уже есть. Ждут только закона о регулировании крипты, который планируют принять к 1 сентября 2026 года.
Хранить и, судя по всему, обменивать крипту можно будет прямо в приложении — без сторонних обменников.
Но есть один нюанс, из-за которого обменники никуда не денутся. 🔍
➡️ Читайте на сайте: https://aff.top/blog/sber-zapustit-svoi-kriptokoshelek
🧠 Ещё больше инсайтов → в канале AFF.top
Forwarded from AFF.TOP
This media is not supported in your browser
VIEW IN TELEGRAM
Индия потребовала от Telegram удалять пиратский контент
Индия потребовала от Telegram удалять пиратский контент — претензия в том, что платформа не ограничивает размер файлов, что позволяет свободно распространять фильмы.
Дуров ответил, что Telegram годами работает в Индии без какой-либо коммерческой выгоды для себя.
Почему давление началось именно сейчас — вопрос открытый. Возможный ответ — в блоге.
➡️ Читайте на сайте: https://aff.top/blog/indiia-potrebovala-ot-telegram-udaliat-piratskii-kontent
🧠 Ещё больше инсайтов → в канале AFF.top
Индия потребовала от Telegram удалять пиратский контент — претензия в том, что платформа не ограничивает размер файлов, что позволяет свободно распространять фильмы.
Дуров ответил, что Telegram годами работает в Индии без какой-либо коммерческой выгоды для себя.
Почему давление началось именно сейчас — вопрос открытый. Возможный ответ — в блоге.
➡️ Читайте на сайте: https://aff.top/blog/indiia-potrebovala-ot-telegram-udaliat-piratskii-kontent
🧠 Ещё больше инсайтов → в канале AFF.top
Forwarded from AFF.TOP
This media is not supported in your browser
VIEW IN TELEGRAM
Google ads меняет стратегию по конверсиям
Google меняет логику автоматических стратегий ставок: с 17 августа 2026 года кампании будут строже придерживаться указанного целевого CPA, а не давать лиды по минимально возможной цене.
Если сейчас твоя кампания даёт лиды по $5, а цель стоит $10 — после обновления алгоритм «поднимет» фактическую стоимость лида к целевой, зато отдаст больше трафик…
➡️ Читайте на сайте: https://aff.top/blog/google-ads-meniaet-strategiiu-po-konversiiam
🧠 Ещё больше инсайтов → в канале AFF.top
Google меняет логику автоматических стратегий ставок: с 17 августа 2026 года кампании будут строже придерживаться указанного целевого CPA, а не давать лиды по минимально возможной цене.
Если сейчас твоя кампания даёт лиды по $5, а цель стоит $10 — после обновления алгоритм «поднимет» фактическую стоимость лида к целевой, зато отдаст больше трафик…
➡️ Читайте на сайте: https://aff.top/blog/google-ads-meniaet-strategiiu-po-konversiiam
🧠 Ещё больше инсайтов → в канале AFF.top
What x-default actually targets — and the geolocation myth around it
A persistent belief is that
Methodology note: we reviewed Google's own documentation language alongside observed behavior on 18 estates running an explicit
What we found:
—
— The most effective
— Omitting
Caveat: where the language set was incomplete (say, only French and German on a site with global traffic), the missing
Limitation: 'signals' here is a black box — browser language, query language, and inferred location all feed in, and we can't weight them precisely.
Conclusion: use
A persistent belief is that
x-default is a 'rest of world' fallback that catches unmatched countries. That framing is incomplete and leads to bad architecture.Methodology note: we reviewed Google's own documentation language alongside observed behavior on 18 estates running an explicit
x-default page distinct from any language page.What we found:
—
x-default is the page shown when no other listed language/region matches the user's signals. It is a matching-of-last-resort, not a geographic bucket.— The most effective
x-default targets were language-selector or auto-detecting landing pages — not the English homepage. Estates that pointed x-default at /en/ saw English served to users whose Accept-Language clearly indicated otherwise.— Omitting
x-default entirely is valid. It is not a required tag. We found no ranking penalty for its absence when the language set was comprehensive.Caveat: where the language set was incomplete (say, only French and German on a site with global traffic), the missing
x-default meant Google guessed, usually defaulting to the highest-authority alternate.Limitation: 'signals' here is a black box — browser language, query language, and inferred location all feed in, and we can't weight them precisely.
Conclusion: use
x-default deliberately, point it at a neutral or detecting page, and stop treating it as a catch-all for countries you forgot.