old.reddit.com
Состояние доменного имени
?
Проверяем корректность доменного имени и наличие технических проблем на уровне домена.
Используйте для продвижения только домен второго уровня.
Отличный запоминающийся домен.
Ответ сервера
star
star
star
200 Успешный ответ
HTTP-код ответа и цепочка редиректов
?
Код 200 — страница доступна. Коды 3xx — редиректы (цепочки замедляют загрузку и размывают ссылочный вес). Коды 4xx/5xx — ошибки, поисковик не сможет проиндексировать страницу.
Кол-во редиректов 3 слишком большое! Проверьте настройки сайта и веб-сервера!
Цепочка редиректов:
http://old.reddit.com
301 MovedPermanently
https://old.reddit.com/
302 Found
https://old.reddit.com/login/?reason=lor2&dest=https%3A%2F%2Fold.reddit.com%2F
200 OK
Безопасность
star
star
star
Сайт безопасен
Использование HTTPS и SSL-сертификат
?
HTTPS — обязательный стандарт. Google и Яндекс отдают предпочтение защищённым сайтам. Отсутствие SSL или просроченный сертификат ведут к предупреждениям в браузере и снижению позиций.
На сайте работает защищенный протокол ssl и сайт открывается по https.
Ssl-сертификат действителен до 09.01.2027 2:59:59.
Включён HSTS (Strict-Transport-Security) — защита от подмены на http.
HTTP автоматически перенаправляется на HTTPS.
Поздравляем! Сайт не содержится в реестре РКН.
Кодировка символов страницы
?
Стандарт — UTF-8. Неправильная кодировка вызывает нечитаемые символы и мешает поисковику корректно распознать текст страницы.
Кодировка на странице не определена. Укажите явно кодировку документа!
en-US
Атрибут lang в HTML-теге
?
Атрибут lang (<html lang="ru">) сообщает поисковикам и браузерам, на каком языке написана страница. Помогает при ранжировании в региональном поиске.
Язык документа указан явно: en-US.
Скорость загрузки
star
star
~0,80сек
Время отклика сервера (TTFB)
?
Time To First Byte — время до получения первого байта от сервера. Норма до 200 мс. Медленный отклик ухудшает пользовательский опыт и ранжирование: Яндекс и Google учитывают скорость страниц.
Скорость загрузки сайта 0,80сек оптимальна.
Объем документа
star
star
312Кб
Размер HTML-кода страницы
?
Слишком большой HTML замедляет парсинг браузером и сканирование поисковым роботом. Рекомендуется не более 200 Кб.
Объем html-документа 312Кб оптимален.
Структура html-документа корректна.
Ресурсы: 4
Внешние ресурсы страницы (CSS, JS, изображения)
?
Количество и тип подключённых ресурсов влияют на скорость загрузки. Большое число запросов увеличивает время рендеринга страницы.
Кол-во файлов ресурсов 4 достаточно.
Показать полный список ресурсов
| Тип |
Название |
Значение |
|
stylesheet
|
|
https://www.redditstatic.com/shreddit/styles-css-D5x5FsAx.css
|
|
js
|
module
|
data:text/javascript,%0A%20%20%20%20%20%20%20%20window.STICKY_CANARY%20%3D%20'false'%3B%0A%20%20%20%20%20%20%20%20window.PRE_PRODUCTION%20%3D%20'false'%3B%0A%20%20%20%20%20%20%20%20if(%60fetch%60in%20window)%7Blet%20e%3Dwindow.fetch%3Bwindow.fetch%3Dfunction(n%2Cr)%7Blet%20i%3Dnew%20Headers(r%3F.headers%3F%3F(n%20instanceof%20Request%3Fn.headers%3Avoid%200))%2Ca%3Dn%20instanceof%20Request%3Fn.url%3An%2Co%3D!new%20URLSearchParams(a).has(%60x_use_preprod%60)%3Breturn%20window.PRE_PRODUCTION%3D%3D%3D%60true%60%26%26o%26%26t(a)%26%26i.set(%60X-Use-Preprod%60%2C%60always%60)%2Ce(n%2C%7B...r%7C%7C%7B%7D%2Cheaders%3Ai%7D)%7D%7Dif(%60sendBeacon%60in%20navigator)%7Blet%20t%3Dnavigator.sendBeacon.bind(navigator)%3Bnavigator.sendBeacon%3Dfunction(n%2Cr)%7Blet%20i%3De(n)%3Breturn%20t.call(navigator%2Ci%2Cr)%7D%7Dfunction%20e(e)%7Bif(window.PRE_PRODUCTION!%3D%3D%60true%60)return%20e%3Blet%20t%3De%20instanceof%20URL%3Fe%3Anew%20URL(e%2Cdocument.baseURI)%3Breturn%20t.searchParams.has(%60x_use_preprod%60)%3Fe%3A(t.searchParams.set(%60x_use_preprod%60%2C%60always%60)%2Ct.toString())%7Dfunction%20t(e)%7Bif(typeof%20e%3D%3D%60string%60%26%26e.match(%2F%5E%5C%2F%2F))return!0%3Blet%20t%3De%20instanceof%20URL%3Fe%3Anew%20URL(e)%3Breturn%20window.location.host%3D%3D%3Dt.host%7Dvar%20n%3D%7B%7D%3Bexport%7Bn%20as%20default%7D%3B%0A%3B%0A%20%20%20%20%20%20
|
|
js
|
module
|
data:text/javascript,(function()%7Bfunction%20e()%7Bfunction%20e(e%2Ct%2Cn)%7Breturn%20new%20Promise(function(r)%7Bvar%20i%3Ddocument.createElement(%60script%60)%3Bfunction%20a()%7Bi.parentElement%26%26i.parentElement.removeChild(i)%2Cr()%7Di.src%3De%2Ci.onload%3Da%2Cn%26%26n.forEach(function(e)%7Bi.setAttribute(e.name%2Ce.value)%7D)%2Ci.onerror%3Dfunction()%7Bconsole.error(%60%5Bpolyfills-loader%5D%20failed%20to%20load%3A%20%60%2Be%2B%60%20check%20the%20network%20tab%20for%20HTTP%20status.%60)%2Ca()%7D%2Ct%26%26(i.type%3Dt)%2Cdocument.head.appendChild(i)%7D)%7Dvar%20t%3D%5B%5D%3Bt.push(e(%60https%3A%2F%2Fwww.redditstatic.com%2Fshreddit%2Fpolyfills%2Fes-module-shims.0ad448105a7238e685087a02f870c658.js%60))%2C%60noModule%60in%20HTMLScriptElement.prototype%7C%7Ct.push(e(%60https%3A%2F%2Fwww.redditstatic.com%2Fshreddit%2Fpolyfills%2Fregenerator-runtime.e2c951e2eae648aacbcac529428355da.js%60))%2C%60fetch%60in%20window%7C%7Ct.push(e(%60https%3A%2F%2Fwww.redditstatic.com%2Fshreddit%2Fpolyfills%2Ffetch.fea8ca24b8349028da12672dd8ea9329.js%60))%2C%60IntersectionObserver%60in%20window%26%26%60IntersectionObserverEntry%60in%20window%26%26%60intersectionRatio%60in%20window.IntersectionObserverEntry.prototype%7C%7Ct.push(e(%60https%3A%2F%2Fwww.redditstatic.com%2Fshreddit%2Fpolyfills%2Fintersection-observer.cd16222e0ed98b4281b486140fddf28b.js%60))%2C(!(%60attachShadow%60in%20Element.prototype)%7C%7C!(%60getRootNode%60in%20Element.prototype)%7C%7Cwindow.ShadyDOM%26%26window.ShadyDOM.force)%26%26t.push(e(%60https%3A%2F%2Fwww.redditstatic.com%2Fshreddit%2Fpolyfills%2Fwebcomponents.89d9e615c60247d4288ba9d1a6c16e3e.js%60))%2C!(%60noModule%60in%20HTMLScriptElement.prototype)%26%26%60getRootNode%60in%20Element.prototype%26%26t.push(e(%60https%3A%2F%2Fwww.redditstatic.com%2Fshreddit%2Fpolyfills%2Fcustom-elements-es5-adapter.79106fd9b808b3bbd70d54b934850301.js%60))%2C%60attachShadow%60in%20Element.prototype%7C%7Ct.push(e(%60https%3A%2F%2Fwww.redditstatic.com%2Fshreddit%2Fpolyfills%2Flit-polyfill-support.98d1da3b717db53d42fadc32e9f20945.js%60))%3Bfunction%20n()%7B%7Dt.length%26%26Promise.all(t).then(n)%7Dif(%60noModule%60in%20HTMLScriptElement.prototype)e()%3Belse%7Bvar%20t%3Ddocument.createElement(%60script%60)%3Bfunction%20n()%7Bdocument.head.removeChild(t)%2Ce()%7Dt.src%3D%60https%3A%2F%2Fwww.redditstatic.com%2Fshreddit%2Fpolyfills%2Fcore-js.7d26e339374ecf9b8a7de13c43c035bf.js%60%2Ct.onload%3Dn%2Ct.onerror%3Dfunction()%7Bconsole.error(%60%5Bpolyfills-loader%5D%20failed%20to%20load%3A%20%60%2Bt.src%2B%60%20check%20the%20network%20tab%20for%20HTTP%20status.%60)%2Cn()%7D%2Cdocument.head.appendChild(t)%7D%7D)()%2C(function()%7Btypeof%20globalThis!%3D%60object%60%26%26(Object.defineProperty(Object.prototype%2C%22__magic__%22%2C%7Bget%3Afunction()%7Breturn%20this%7D%2Cconfigurable%3A!0%7D)%2C__magic__.globalThis%3D__magic__%2Cdelete%20Object.prototype.__magic__)%7D)()%3B%0A
|
|
js
|
module
|
data:text/javascript,let%20navPromise%3Dnull%3Basync%20function%20getNavigation()%7Breturn%20navPromise%7C%7C(navPromise%3D_getNavigation())%2CnavPromise%7Dasync%20function%20_getNavigation()%7Bif(!window.navigation)try%7Blet%7BapplyPolyfill%3Ae%7D%3Dawait%20import(%60.%2Fapply-polyfill-CaflZqQx.js%60)%3Be()%7Dcatch(e)%7Bwindow.Sentry%3F.captureException(Error(%60Navigation%20polyfill%20failed%20to%20initialize.%60%2C%7Bcause%3Ae%7D))%7Dreturn%20window.navigation%7Dconst%20sentryLazyLoader%3D(e%2Cn%2Cr%2Ci%2Ca%2Co%2Cs)%3D%3E%7Bvar%20c%3D!1%2Cl%3D!1%2Cu%3D%5B%5D%2Cd%3Dfunction(e)%7B(%60e%60in%20e%7C%7C%60p%60in%20e%7C%7Ce.f%26%26e.f.indexOf(%60capture%60)%3E-1%7C%7Ce.f%26%26e.f.indexOf(%60withScope%60)%3E-1%7C%7Ce.f%26%26e.f.indexOf(%60showReportDialog%60)%3E-1)%26%26f(u)%2Cd.data.push(e)%7D%3Bd.data%3D%5B%5D%3Bfunction%20f(n)%7Bif(l)return%3Bl%3D!0%3Bfunction%20r()%7BgetNavigation().then(()%3D%3Eimport(%60.%2Fsentry-DE6QD1Qu.js%60)).then(t%3D%3E%7Btry%7Be%5Bo%5D%3Dt.default%2Ce%5Bi%5D%3Dm%2Ce%5Ba%5D%3Dh%3Bvar%20r%3De%5Bo%5D%2Cc%3Dr.init%3Br.init%3Dfunction(e)%7Bvar%20t%3Ds%3Bfor(var%20n%20in%20e)Object.prototype.hasOwnProperty.call(e%2Cn)%26%26(t%5Bn%5D%3De%5Bn%5D)%3Bc(t)%7D%2Cp(n%2Cr)%7Dcatch(e)%7Bconsole.error(e)%7D%7D)%7D%60requestIdleCallback%60in%20e%3Fe.requestIdleCallback(r%2C%7Btimeout%3A3e3%7D)%3Ae.setTimeout(r%2C0)%7Dfunction%20p(t%2Cn)%7Btry%7Bfor(var%20r%3Dd.data%2Co%3D0%3Bo%3Ct.length%3Bo%2B%2B)typeof%20t%5Bo%5D%3D%3D%60function%60%26%26t%5Bo%5D()%3Bvar%20s%3D!1%2Cc%3De.__SENTRY__%3Bc!%3D%3Dvoid%200%26%26c.hub%26%26c.hub.getClient()%26%26(s%3D!0)%3Bfor(var%20l%3D!1%2Co%3D0%3Bo%3Cr.length%3Bo%2B%2B)if(r%5Bo%5D.f)%7Bl%3D!0%3Bvar%20u%3Dr%5Bo%5D%3Bs%3D%3D%3D!1%26%26u.f!%3D%3D%60init%60%26%26n.init()%2Cs%3D!0%2Cu.f%26%26n%5Bu.f%5D.apply(n%2Cu.a)%7Ds%3D%3D%3D!1%26%26l%3D%3D%3D!1%26%26n.init()%3Bfor(var%20f%3De%5Bi%5D%2Cp%3De%5Ba%5D%2Co%3D0%3Bo%3Cr.length%3Bo%2B%2B)%60e%60in%20r%5Bo%5D%26%26f%3Ff.apply(e%2Cr%5Bo%5D.e)%3A%60p%60in%20r%5Bo%5D%26%26p%26%26p.apply(e%2C%5Br%5Bo%5D.p%5D)%7Dcatch(e)%7Bconsole.error(e)%7D%7De%5Bo%5D%3De%5Bo%5D%7C%7C%7B%7D%2Ce%5Bo%5D.onLoad%3Dfunction(e)%7Bu.push(e)%2Cc%26%26f(u)%7D%2Ce%5Bo%5D.forceLoad%3Dfunction()%7Bc%3D!0%2CsetTimeout(function()%7Bf(u)%7D)%7D%2C%5B%60init%60%2C%60addBreadcrumb%60%2C%60captureMessage%60%2C%60captureException%60%2C%60captureEvent%60%2C%60configureScope%60%2C%60withScope%60%2C%60showReportDialog%60%5D.forEach(function(t)%7Be%5Bo%5D%5Bt%5D%3Dfunction()%7Bd(%7Bf%3At%2Ca%3Aarguments%7D)%7D%7D)%3Bvar%20m%3De%5Bi%5D%3Be%5Bi%5D%3Dfunction(t%2Cn%2Cr%2Ci%2Ca)%7Bd(%7Be%3A%5B%5D.slice.call(arguments)%7D)%2Cm%26%26m.apply(e%2Carguments)%7D%3Bvar%20h%3De%5Ba%5D%3Be%5Ba%5D%3Dfunction(t)%7Bd(%7Bp%3A%60reason%60in%20t%3Ft.reason%3A%60detail%60in%20t%26%26%60reason%60in%20t.detail%3Ft.detail.reason%3At%7D)%2Ch%26%26h.apply(e%2Carguments)%7D%7D%3Bvar%20supportedBrowsers%3D%2FEdge%3F%5C%2F(1%7B2%7D%5B6-9%5D%7C1%5B2-9%5D%5Cd%7C%5B2-9%5D%5Cd%7B2%7D%7C%5Cd%7B4%2C%7D)%5C.%5Cd%2B(%5C.%5Cd%2B%7C)%7CFirefox%5C%2F(1%7B2%7D%5B7-9%5D%7C1%5B2-9%5D%5Cd%7C%5B2-9%5D%5Cd%7B2%7D%7C%5Cd%7B4%2C%7D)%5C.%5Cd%2B(%5C.%5Cd%2B%7C)%7CChrom(ium%7Ce)%5C%2F(4%5B1-9%5D%7C%5B5-9%5D%5Cd%7C%5Cd%7B3%2C%7D)%5C.%5Cd%2B(%5C.%5Cd%2B%7C)(%5B%5Cd.%5D%2B%24%7C.*Safari%5C%2F(%3F!%5B%5Cd.%5D%2B%20Edge%5C%2F%5B%5Cd.%5D%2B%24))%7C(Maci%7CX1%7B2%7D).%2B%20Version%5C%2F(15%5C.%5Cd%2B%7C(1%5B6-9%5D%7C%5B2-9%5D%5Cd%7C%5Cd%7B3%2C%7D)%5C.%5Cd%2B)(%5B%2C.%5D%5Cd%2B%7C)(%20%5C(%5Cw%2B%5C)%7C)(%20Mobile%5C%2F%5Cw%2B%7C)%20Safari%5C%2F%7CChrome.%2BOPR%5C%2F(10%5B1-9%5D%7C1%5B1-9%5D%5Cd%7C%5B2-9%5D%5Cd%7B2%7D%7C%5Cd%7B4%2C%7D)%5C.%5Cd%2B%5C.%5Cd%2B%7C(CPU%5B%20%2B%5DOS%7CiPhone%5B%20%2B%5DOS%7CCPU%5B%20%2B%5DiPhone%7CCPU%20IPhone%20OS%7CCPU%20iPad%20OS)%5B%20%2B%5D%2B(15%5B._%5D%5Cd%2B%7C(1%5B6-9%5D%7C%5B2-9%5D%5Cd%7C%5Cd%7B3%2C%7D)%5B._%5D%5Cd%2B)(%5B._%5D%5Cd%2B%7C)%2F%3Bconst%20getErrorStringProperty%3D(e%2Ct)%3D%3E%7Bif(!(e%3D%3D%3Dnull%7C%7Ctypeof%20e!%3D%60object%60%26%26typeof%20e!%3D%60function%60))try%7Blet%20n%3De%5Bt%5D%3Breturn%20typeof%20n%3D%3D%60string%60%3Fn%3Avoid%200%7Dcatch%7Breturn%7D%7D%2CmessageFilterStrings%3D%5B%60window.performance.mark%20is%20not%20a%20function%60%2C%60performance.getEntriesByName%20is%20not%20a%20function%60%2C%60window.queueMicrotask%20is%20not%20a%20function%60%2C%60runCustomize%20is%20not%20defined%60%2C%60require%20is%20not%20defined%60%2C%60n.assignedElements%20is%20not%20a%20function%60%2C%60SymBrowser_ModifyAnchorTagWithTarget%60%2C%60ibFindAllVideos%60%2C%60Unexpected%20token%20'for'%60%5D%2CfilterBasedOnMessage%3De%3D%3E%7Blet%20t%3DgetErrorStringProperty(e.originalException%2C%60message%60)%3Breturn!!messageFilterStrings.some(e%3D%3Et%3F.includes(e))%7D%2CstackFilterStrings%3D%5B%60findTopmostVisibleElement%60%2C%60%40virtualstate%2Fnavigation%2Ftransition%2Fabort%60%5D%2CfilterBasedOnStack%3De%3D%3E%7Blet%20t%3DgetErrorStringProperty(e.originalException%2C%60stack%60)%3Breturn!!stackFilterStrings.some(e%3D%3Et%3F.includes(e))%7D%2CfilterBasedOnUserAgent%3De%3D%3E!supportedBrowsers.test(e)%2CfilterEvent%3De%3D%3E%7Blet%20t%3DfilterBasedOnUserAgent(navigator.userAgent)%3Breturn!!(filterBasedOnMessage(e)%7C%7CfilterBasedOnStack(e)%7C%7Ct)%7D%2CSENTRY_CLIENT_ERROR_SAMPLE_RATE%3D.004%2CMAX_BATCH_SIZE%3D10%2CBATCH_FLUSH_INTERVAL%3D2e3%2CerrorEventBatch%3D%5B%5D%2CgetCookie%3De%3D%3Edocument.cookie.split(%60%3B%60).map(e%3D%3Ee.trim()).filter(Boolean).map(e%3D%3Ee.split(%60%3D%60)).find((%5Bt%5D)%3D%3Et.trim()%3D%3D%3De)%3F.%5B1%5D%3F%3Fnull%3Blet%20batchFlushTimeout%3Dnull%3Bconst%20queueErrorEvent%3De%3D%3E%7BerrorEventBatch.push(e)%2CerrorEventBatch.length%3E%3D10%3F(batchFlushTimeout%26%26(clearTimeout(batchFlushTimeout)%2CbatchFlushTimeout%3Dnull)%2CflushErrorEventBatch(errorEventBatch))%3AbatchFlushTimeout%7C%7C(batchFlushTimeout%3DsetTimeout(()%3D%3E%7BbatchFlushTimeout%3Dnull%2CerrorEventBatch.length%3E0%26%26flushErrorEventBatch(errorEventBatch)%7D%2C2e3))%7D%2CflushErrorEventBatch%3Dasync(e%2Ct)%3D%3E%7Bif(e.length%3D%3D%3D0)return%3Blet%20n%3D%5B...e%5D%3Be.length%3D0%3Btry%7B(await%20fetch(%60%2Fsvc%2Fshreddit%2Fclient-errors%60%2C%7Bmethod%3A%60POST%60%2Cheaders%3A%7B%22Content-Type%22%3A%60application%2Fjson%60%7D%2Cbody%3AJSON.stringify(%7Bcsrf_token%3AgetCookie(%60csrf_token%60)%2Cerrors%3An%7D)%2Ckeepalive%3At%3F.keepalive%7D)).status%3E%3D500%26%26(failureModeEnabled%3D!0)%7Dcatch%7BfailureModeEnabled%3D!0%7D%7D%2ChandlePageHide%3D()%3D%3E%7BbatchFlushTimeout%26%26(clearTimeout(batchFlushTimeout)%2CbatchFlushTimeout%3Dnull)%2CflushErrorEventBatch(errorEventBatch%2C%7Bkeepalive%3A!0%7D)%7D%3Bdocument.addEventListener(%60visibilitychange%60%2C()%3D%3E%7Bdocument.visibilityState%3D%3D%3D%60hidden%60%26%26handlePageHide()%7D)%2Cwindow.addEventListener(%60pagehide%60%2ChandlePageHide)%3Blet%20failureModeEnabled%3D!1%3Bconst%20extractErrorMessage%3De%3D%3E%7Blet%20t%3De.exception%3F.values%3F.%5B0%5D%3Breturn!t%3F.type%7C%7C!t%3F.value%3F%60%60%3A%60%24%7Bt.type%7D%3A%20%24%7Bt.value%7D%60%7D%2CgetExceptionStack%3De%3D%3E%7Bif(!(e%3D%3D%3Dnull%7C%7Ctypeof%20e!%3D%60object%60%26%26typeof%20e!%3D%60function%60))try%7Blet%7Bstack%3At%7D%3De%3Breturn%20typeof%20t%3D%3D%60string%60%26%26t.length%3E0%3Ft%3Avoid%200%7Dcatch%7Breturn%7D%7D%2CformatSentryStackTrace%3D(e%2Ct)%3D%3Et%3F.frames%3F.length%3F%5Be%2C...%5B...t.frames%5D.reverse().map(e%3D%3E%60%20%20%20%20at%20%24%7Be.function%7C%7C%60%3Canonymous%3E%60%7D%20(%24%7Be.filename%7C%7C%60%3Cunknown%3E%60%7D%24%7Be.lineno%3D%3D%3Dvoid%200%3F%60%60%3A%60%3A%24%7Be.lineno%7D%60%7D%24%7Be.colno%3D%3D%3Dvoid%200%3F%60%60%3A%60%3A%24%7Be.colno%7D%60%7D)%60)%5D.join(%60%0A%60)%3Avoid%200%2CextractErrorStack%3D(e%2Ct%2Cn)%3D%3EgetExceptionStack(t.originalException)%3F%3FgetExceptionStack(t.syntheticException)%3F%3FformatSentryStackTrace(n%2Ce.exception%3F.values%5B0%5D%3F.stacktrace)%3F%3FformatSentryStackTrace(n%2Ce.stacktrace)%3F%3FError(n).stack%3F%3Fn%2CsentryBeforeSend%3D(e%2Ct)%3D%3E%7Bif(filterEvent(t))return%20null%3Blet%20n%3DMath.random()%3C(SENTRY_CONFIG.sampleRate%3F%3F.004)%3Bif(!failureModeEnabled%26%26e.exception)%7Blet%20n%3D%60unknown%60%2Cr%3D%60unknown%60%2Ci%3Ddocument.querySelector(%60shreddit-app%60)%3BcustomElements.get(%60shreddit-app%60)%26%26typeof%20i%3F._trackEvent%3D%3D%60function%60%26%26(n%3Di.pageType%7C%7C%60unknown%60%2Cr%3Di.routeName%7C%7C%60unknown%60)%3Blet%20a%3DextractErrorMessage(e)%3Ba%26%26queueErrorEvent(%7Bmessage%3Aa%2Cstack%3AextractErrorStack(e%2Ct%2Ca)%2Cpage_type%3An%2Croute_name%3Ar%2CctData%3Ai%3F.ctData%7D)%7Dreturn%20n%3Fe%3Anull%7D%2CinitializeSentry%3D(e%3DsentryLazyLoader)%3D%3E%7Be(window%2Cdocument%2C%60script%60%2C%60onerror%60%2C%60onunhandledrejection%60%2C%60Sentry%60%2C%7Benabled%3ASENTRY_CONFIG.enabled%2Cdsn%3ASENTRY_CONFIG.dsn%2Cenvironment%3ASENTRY_CONFIG.environment%2Crelease%3A%6070e286a646cc9761beff6ba808295256fb8421d9%60%2CattachStacktrace%3A!0%2CbeforeSend%3AsentryBeforeSend%7D)%7D%3BinitializeSentry()%3Bclass%20FaceplatePerfmark%20extends%20HTMLElement%7Bconstructor()%7Bsuper(...arguments)%2Cthis.marked%3D!1%7DconnectedCallback()%7Bif(this.marked)return%3Blet%20e%3Dthis.getAttribute(%60name%60)%3Bif(!e)throw%20Error(%60No%20name%20attribute%20specified%20on%20faceplate-perfmark%20element.%60)%3Bwindow.performance.mark(e)%2Cthis.marked%3D!0%7D%7DcustomElements.define(%60faceplate-perfmark%60%2CFaceplatePerfmark)%3Bfunction%20measureDomContentLoaded()%7Blet%20e%3Dnew%20PerformanceObserver(t%3D%3E%7Bt.getEntries().forEach(t%3D%3E%7Blet%7BdomContentLoadedEventStart%3An%7D%3Dt%3Bn%26%26(dispatchClientEmitMetric(n%2F1e3)%2Ce.disconnect())%7D)%7D)%3Be.observe(%7Btype%3A%60navigation%60%2Cbuffered%3A!0%7D)%7Dfunction%20dispatchClientEmitMetric(e)%7Blet%20t%3Ddocument.querySelector(%60shreddit-app%60)%3Bif(!t)return%3Blet%20n%3Dnew%20CustomEvent(%60faceplate-track%60%2C%7Bdetail%3A%7Bsource%3A%60client%60%2Caction%3A%60emit%60%2Cnoun%3A%60metric%60%2Cclient_timestamp%3ADate.now()%2Cmetric%3A%7Bname%3A%60shreddit_dom_content_loaded_seconds%60%2Cvalue%3Ae%2Clabel_values%3A%5B%60page_type%2C%24%7Bt.getAttribute(%60pagetype%60)%7D%60%2C%60device_type%2C%24%7Bt.getAttribute(%60devicetype%60)%7D%60%5D%7D%7D%7D)%3Bt.dispatchEvent(n)%7Dfunction%20customEvent(e%2Ct%2Cn%3D!0)%7Breturn%20new%20CustomEvent(e%2C%7Bcomposed%3A!0%2Cbubbles%3An%2Ccancelable%3A!0%2Cdetail%3At%7D)%7Dfunction%20trackEvent(e%2Ct)%7Blet%20n%3DcustomEvent(%60faceplate-track%60%2Ct)%3Bn.SAN%3DmakeSAN(t)%2Ce.dispatchEvent(n)%7Dfunction%20makeSAN(e)%7Breturn%60%24%7Be.source%7D%2F%24%7Be.action%7D%2F%24%7Be.noun%7D%60.toLowerCase()%7Dconst%20EMBED_HOST_URL_PARAM%3D%60embed_host_url%60%2CgetEmbedOverrideReferrerFromHref%3De%3D%3E%7Bif(!e)return%3Blet%20t%3Btry%7Blet%7BsearchParams%3An%7D%3Dnew%20URL(e)%2Cr%3Dn.get(%60embed_host_url%60)%2Ci%3Dr%26%26decodeURIComponent(r)%3Bif(!i)return%3Bt%3D%7Burl%3Ai%2Cdomain%3Anew%20URL(i).hostname%7D%7Dcatch(e)%7B%7Dreturn%20t%7D%2CSHREDDIT_FE_START_TIMESTAMP%3D%60frontend_start_timestamp%60%3Bfunction%20deepMergeTimestampMetadata(e%2Ct)%7Bif(!(%60request%60in%20e))return%7B...e%2Crequest%3At%7D%3Blet%20n%3D%7B...e.request%3F.shreddit_client_timestamps%3F%3F%7B%7D%2C...t.shreddit_client_timestamps%7D%2Cr%3D%7B...e.request%3F%3F%7B%7D%2Cshreddit_client_timestamps%3An%7D%3Breturn%7B...e%2Crequest%3Ar%7D%7Dconst%20discardControlVariants%3De%3D%3E%7Bif(e!%3D%3D%60control_1%60%26%26e!%3D%3D%60control_2%60)return%20e%7C%7Cvoid%200%7D%2CisExperimentEnabled%3De%3D%3E!!discardControlVariants(e)%3Bfunction%20getClientExperimentVariant(e)%7Bif(window%3F.CLIENT_EXPERIMENTS)return%20window%3F.CLIENT_EXPERIMENTS%3F.%5Be%5D%7Dfunction%20isClientExperimentEnabled(e)%7Blet%20t%3DgetClientExperimentVariant(e)%3Breturn%20isExperimentEnabled(t)%7Dfunction%20getClientExperimentVersion(e)%7Breturn%20window%3F.CLIENT_EXPERIMENT_VERSIONS%3F.%5Be%5D%7Dconst%20SHREDDIT_PDP_TELEMETRY_CODE_YELLOW_KILLSWITCH%3D%60shreddit_pdp_telemetry_code_yellow_killswitch%60%2CSHREDDIT_JS_CHALLENGE_REFERRER_TELEMETRY_EXPERIMENT_NAME%3D%60shreddit_js_challenge_referrer_telemetry%60%2CIS_REDDIT_REGEX%3D%2F%5E(%5Ba-z0-9-%5D%2B%5C.)%3Freddit%5C.com%24%2F%2CIS_REDDIT_REGEX_DEV%3D%2F%5E(%5B%5CS%5D%2B%5C.)%3Fsnoo%5C.dev%24%2F%3Bfunction%20isRedditReferral(e)%7Breturn%20IS_REDDIT_REGEX.test(e)%7C%7CIS_REDDIT_REGEX_DEV.test(e)%7Dfunction%20safeUrl(e)%7Bif(!e)return%20null%3Btry%7Breturn%20new%20URL(e)%7Dcatch%7Breturn%20null%7D%7Dconst%20STRING_SAN_DELIMITER%3D%60__%60%3Bfunction%20normalizeBuildEventSanInput(e)%7Bif(typeof%20e%3D%3D%60string%60)%7Blet%20t%3De.split(%60__%60)%3Bif(t.length%3C3)return%7Bsource%3A%60%60%2Caction%3A%60%60%2Cnoun%3A%60%60%7D%3Blet%20n%3Dt.pop()%2Cr%3Dt.pop()%3Breturn%7Bsource%3At.join(%60__%60)%2Caction%3Ar%2Cnoun%3An%7D%7Dreturn%20e%7Dconst%20PATHNAME_PAGE_TYPE_STORAGE_KEY%3D%60pathname-page-type-map%60%3Bvar%20Severity%3B(function(e)%7Be%5Be.emergency%3D0%5D%3D%60emergency%60%2Ce%5Be.alert%3D1%5D%3D%60alert%60%2Ce%5Be.critical%3D2%5D%3D%60critical%60%2Ce%5Be.error%3D3%5D%3D%60error%60%2Ce%5Be.warning%3D4%5D%3D%60warning%60%2Ce%5Be.notice%3D5%5D%3D%60notice%60%2Ce%5Be.info%3D6%5D%3D%60info%60%2Ce%5Be.success%3D7%5D%3D%60success%60%2Ce%5Be.debug%3D8%5D%3D%60debug%60%2Ce%5Be.none%3D9%5D%3D%60none%60%7D)(Severity%7C%7C(Severity%3D%7B%7D))%3Bvar%20LoadingStrategy%3B(function(e)%7Be.Programmatic%3D%60programmatic%60%2Ce.Eager%3D%60eager%60%2Ce.Action%3D%60action%60%2Ce.Intent%3D%60intent%60%2Ce.Lazy%3D%60lazy%60%2Ce.Preload%3D%60preload%60%7D)(LoadingStrategy%7C%7C(LoadingStrategy%3D%7B%7D))%3Bvar%20LoadingModifier%3B(function(e)%7Be.Once%3D%60once%60%2Ce.Always%3D%60always%60%7D)(LoadingModifier%7C%7C(LoadingModifier%3D%7B%7D))%3Bvar%20SupportedMethod%3B(function(e)%7Be.Get%3D%60get%60%2Ce.Post%3D%60post%60%2Ce.Dialog%3D%60dialog%60%2Ce.Log%3D%60log%60%7D)(SupportedMethod%7C%7C(SupportedMethod%3D%7B%7D))%3Bvar%20PartialRenderMode%3B(function(e)%7Be.Append%3D%60append%60%2Ce.Prepend%3D%60prepend%60%2Ce.After%3D%60after%60%2Ce.Before%3D%60before%60%2Ce.Replace%3D%60replace%60%2Ce.Contents%3D%60contents%60%7D)(PartialRenderMode%7C%7C(PartialRenderMode%3D%7B%7D))%3Blet%20testableLocation%3Dwindow.location%3Bconst%20_str%3D(e%2C...t)%3D%3E(%7BstrTag%3A!0%2Cstrings%3Ae%2Cvalues%3At%7D)%2Cstr%3D_str%2CisStrTagged%3De%3D%3Etypeof%20e!%3D%60string%60%26%26%60strTag%60in%20e%2CjoinStringsAndValues%3D(e%2Ct%2Cn)%3D%3E%7Blet%20r%3De%5B0%5D%3Bfor(let%20n%3D1%3Bn%3Ce.length%3Bn%2B%2B)r%2B%3Dt%5Bn-1%5D%2Cr%2B%3De%5Bn%5D%3Breturn%20r%7D%2CisPluralDefinition%3De%3D%3Etypeof%20e%3D%3D%60object%60%26%26%60one%60in%20e%26%26%60other%60in%20e%26%26%60count%60in%20e%3Blet%20defaultPluralSelector%3Bfunction%20getSelector(e)%7Breturn%20defaultPluralSelector%7C%7C(defaultPluralSelector%3Dnew%20Intl.PluralRules(e))%7Dconst%20defaultMsg%3De%3D%3E(t%3D%3E%7Bif(isPluralDefinition(t))%7Blet%20n%3DgetSelector(e).select(t.count)%3Bt%3Dt%5Bn%5D%7Dreturn%20isStrTagged(t)%3FjoinStringsAndValues(t.strings%2Ct.values)%3At%7D)%3Blet%20msg%3DdefaultMsg(%60en%60)%3Bclass%20Deferred%7Bconstructor()%7Bthis.settled%3D!1%2Cthis.promise%3Dnew%20Promise((e%2Ct)%3D%3E%7Bthis._resolve%3De%2Cthis._reject%3Dt%7D)%7Dresolve(e)%7Bthis.settled%3D!0%2Cthis._resolve(e)%7Dreject(e)%7Bthis.settled%3D!0%2Cthis._reject(e)%7D%7Dfor(let%20e%3D0%3Be%3C256%3Be%2B%2B)(e%3E%3E4%2615).toString(16)%2B(e%2615).toString(16)%3Blet%20loading%3Dnew%20Deferred%3Bloading.resolve()%3Bfunction%20getRateLimitError(e)%7Breturn%20msg(e%3F%7Bcount%3AparseInt(e)%7C%7C0%2Cone%3Astr%60Your%20request%20has%20been%20rate%20limited%2C%20please%20take%20a%20break%20for%20%24%7Be%7D%20second%20and%20try%20again.%60%2Cother%3Astr%60Your%20request%20has%20been%20rate%20limited%2C%20please%20take%20a%20break%20for%20%24%7Be%7D%20seconds%20and%20try%20again.%60%7D%3Astr%60Your%20request%20has%20been%20rate%20limited%2C%20please%20take%20a%20break%20for%20a%20couple%20minutes%20and%20try%20again.%60%2C%7Bdesc%3A%60Messaging%20for%20rate%20limit%20error%20429%60%7D)%7Dfunction%20getForbiddenError()%7Breturn%20msg(str%60%0A%20%20%20%20%20%20Your%20request%20has%20been%20blocked%20by%20network%20security.%20%20Please%20try%20to%20login%20with%20your%20Reddit%20account.%0A%20%20%20%20%60%2C%7Bdesc%3A%60Messaging%20for%20403%20forbidden%20error%60%7D)%7Dfunction%20getGenericError()%7Breturn%20msg(%60We%20have%20encountered%20an%20error.%20Please%20try%20again%20later.%60%2C%7Bdesc%3A%60Generic%20network%20error%20message%60%7D)%7Dfunction%20getNetworkErrorMessage(e)%7Bswitch(e.status)%7Bcase%20429%3Areturn%20getRateLimitError(e.headers.get(%60X-ratelimit-reset%60))%3Bcase%20403%3Areturn%20getForbiddenError()%3Bdefault%3Areturn%20getGenericError()%7D%7Dfunction%20assign(e)%7Bfor(var%20t%3D1%3Bt%3Carguments.length%3Bt%2B%2B)%7Bvar%20n%3Darguments%5Bt%5D%3Bfor(var%20r%20in%20n)r!%3D%3D%60__proto__%60%26%26(e%5Br%5D%3Dn%5Br%5D)%7Dreturn%20e%7Dvar%20defaultConverter%3D%7Bread%3Afunction(e)%7Breturn%20e%5B0%5D%3D%3D%3D%60%22%60%26%26(e%3De.slice(1%2C-1))%2Ce.replace(%2F(%25%5B%5CdA-F%5D%7B2%7D)%2B%2Fgi%2CdecodeURIComponent)%7D%2Cwrite%3Afunction(e)%7Breturn%20encodeURIComponent(e).replace(%2F%25(2%5B346BF%5D%7C3%5BAC-F%5D%7C40%7C5%5BBDE%5D%7C60%7C7%5BBCD%5D)%2Fg%2CdecodeURIComponent)%7D%7D%3Bfunction%20init(e%2Ct)%7Bfunction%20n(n%2Cr%2Ci)%7Bif(!(typeof%20document%3E%60u%60))%7Bi%3Dassign(%7B%7D%2Ct%2Ci)%2Ctypeof%20i.expires%3D%3D%60number%60%26%26(i.expires%3Dnew%20Date(Date.now()%2Bi.expires*864e5))%2Ci.expires%26%26(i.expires%3Di.expires.toUTCString())%2Cn%3DencodeURIComponent(n).replace(%2F%25(2%5B346B%5D%7C5E%7C60%7C7C)%2Fg%2CdecodeURIComponent).replace(%2F%5B()%5D%2Fg%2Cescape)%3Bvar%20a%3D%60%60%3Bfor(var%20o%20in%20i)i%5Bo%5D%26%26(a%2B%3D%60%3B%20%60%2Bo%2Ci%5Bo%5D!%3D%3D!0%26%26(a%2B%3D%60%3D%60%2Bi%5Bo%5D.split(%60%3B%60)%5B0%5D))%3Breturn%20document.cookie%3Dn%2B%60%3D%60%2Be.write(r%2Cn)%2Ba%7D%7Dfunction%20r(t)%7Bif(!(typeof%20document%3E%60u%60%7C%7Carguments.length%26%26!t))%7Bfor(var%20n%3Ddocument.cookie%3Fdocument.cookie.split(%60%3B%20%60)%3A%5B%5D%2Cr%3D%7B%7D%2Ci%3D0%3Bi%3Cn.length%3Bi%2B%2B)%7Bvar%20a%3Dn%5Bi%5D.split(%60%3D%60)%2Co%3Da.slice(1).join(%60%3D%60)%3Btry%7Bvar%20s%3DdecodeURIComponent(a%5B0%5D)%3Bif(s%20in%20r%7C%7C(r%5Bs%5D%3De.read(o%2Cs))%2Ct%3D%3D%3Ds)break%7Dcatch(e)%7B%7D%7Dreturn%20t%3Fr%5Bt%5D%3Ar%7D%7Dreturn%20Object.create(%7Bset%3An%2Cget%3Ar%2Cremove%3Afunction(e%2Ct)%7Bn(e%2C%60%60%2Cassign(%7B%7D%2Ct%2C%7Bexpires%3A-1%7D))%7D%2CwithAttributes%3Afunction(e)%7Breturn%20init(this.converter%2Cassign(%7B%7D%2Cthis.attributes%2Ce))%7D%2CwithConverter%3Afunction(e)%7Breturn%20init(assign(%7B%7D%2Cthis.converter%2Ce)%2Cthis.attributes)%7D%7D%2C%7Battributes%3A%7Bvalue%3AObject.freeze(t)%7D%2Cconverter%3A%7Bvalue%3AObject.freeze(e)%7D%7D)%7Dvar%20api%3Dinit(defaultConverter%2C%7Bpath%3A%60%2F%60%7D)%3Bconst%20EXTERNAL_ORIGIN_PATTERNS%3D%5B%60https%3A%2F%2Fads.reddit.com%60%2C%60https%3A%2F%2Freddit-service-ads-ui%60%5D%3Bfunction%20getRequestHost()%7Breturn%20EXTERNAL_ORIGIN_PATTERNS.some(e%3D%3EtestableLocation.origin.startsWith(e))%3F%60https%3A%2F%2Fwww.reddit.com%60%3A%60%60%7Dfunction%20captureError(e)%7Bwindow.Sentry%3F.captureMessage%3F.(e)%7Dconst%20CODES_HANDLED_BY_REPORTER%3D%5B429%2C403%5D%2CCODES_NOT_REPORTED_TO_SENTRY%3D%5B499%5D%3Bfunction%20shouldCaptureError(e)%7Breturn!(e%20instanceof%20ClientGQLNetworkError)%26%26!(e%20instanceof%20Error%26%26e.name%3D%3D%3D%60AbortError%60)%7Dfunction%20reporter(e%2Ct%2Cn)%7Blet%20r%3Ddocument.querySelector(%60shreddit-app%60)%3Br%26%26r.dispatchEvent(customEvent(%60faceplate-alert%60%2C%7Blevel%3ASeverity.error%2Cmessage%3Ae%2Ccause%3At%7D))%7Dclass%20ClientGQLNetworkError%20extends%20Error%7Bconstructor(e%2Ct)%7Bsuper(e)%2Cthis.response%3Dt%2Cthis.name%3D%60ClientGQLNetworkError%60%7D%7Dasync%20function%20requestClientGQL%241(%7Boperation%3Ae%2Cvariables%3At%2Cinit%3An%3D%7B%7D%7D)%7Btry%7Blet%20r%3Dawait%20fetch(getRequestHost()%2B%60%2Fsvc%2Fshreddit%2Fgraphql%60%2C%7Bmethod%3A%60POST%60%2Cheaders%3A%7BAccept%3A%60application%2Fjson%60%2C%22Content-Type%22%3A%60application%2Fjson%60%7D%2Cbody%3AJSON.stringify(%7Boperation%3Ae%2Cvariables%3At%3F%3F%7B%7D%2Ccsrf_token%3Aapi.get(%60csrf_token%60)%7D)%2C...n%7D)%3Bif(r.ok)return%20r.json()%3Blet%20i%3D(await%20r.text()).trim()%7C%7C%60Request%20failed%20with%20status%20%24%7Br.status%7D%60%3BCODES_NOT_REPORTED_TO_SENTRY.includes(r.status)%7C%7CcaptureError(%60Client%20GQL%20Request%20failed%20with%20status%20%24%7Br.status%7D%3A%20%24%7Bi%7D%60)%3Blet%20a%3DgetNetworkErrorMessage(r)%3Bthrow%20a%26%26CODES_HANDLED_BY_REPORTER.includes(r.status)%26%26reporter(a%2C%60client-gql-network-error-%24%7Br.status%7D%60)%2Cnew%20ClientGQLNetworkError(i%2Cr)%7Dcatch(t)%7Bthrow%20shouldCaptureError(t)%26%26captureError(%60Unable%20to%20complete%20the%20request%20for%20GQL%20operation%20%22%24%7Be%7D%22%3A%20%24%7Bt%7D%60)%2Ct%7D%7Dlet%20requestClientGQL%3DrequestClientGQL%241%3Bconst%20exposedExperiments%3Dnew%20Set%2CCDN_CACHING_EXPERIMENT%3D%60shreddit_cdn_caching_milestone_1%60%3Bfunction%20exposeClientExperiment(%7BexperimentName%3Ae%2Cvariant%3At%2CexperimentVersion%3An%2CexposeOnce%3Ar%3D!1%2CtargetingInputs%3Ai%2CparentHoldoutGroup%3Aa%7D)%7Bif(r%26%26exposedExperiments.has(%60%24%7Be%7D_%24%7Bt%7D_%24%7Bn%7D%60)%7C%7C(exposedExperiments.add(%60%24%7Be%7D_%24%7Bt%7D_%24%7Bn%7D%60)%2Cdocument.querySelector(%60shreddit-app%60)%3F.getAttribute(%60is-cached%60)%3D%3D%3D%60true%60%26%26e!%3D%3D%60shreddit_cdn_caching_milestone_1%60))return%20Promise.resolve()%3Blet%20o%3DgetOptionalExposeVariantInput(%7BexperimentName%3Ae%2Cvariant%3At%2CexperimentVersion%3An%2CtargetingInputs%3Ai%7D)%2Cs%3DgetParentHoldoutGroupExposureInput(a)%3Breturn%20s%3FexposeVariantBatch(%5Bo%2Cs%5D.filter(isExposeVariantInput))%3Ao%3FexposeVariant(o)%3APromise.resolve()%7Dfunction%20exposeVariant(e)%7Breturn%20requestClientGQL(%7Boperation%3A%60ExposeVariant%60%2Cvariables%3A%7Binput%3Ae%7D%7D)%7Dfunction%20exposeVariantBatch(e)%7Breturn%20e.length%3D%3D%3D0%3FPromise.resolve()%3ArequestClientGQL(%7Boperation%3A%60ExposeVariantBatch%60%2Cvariables%3A%7Binputs%3Ae%7D%7D)%7Dfunction%20getOptionalExposeVariantInput(%7BexperimentName%3Ae%2Cvariant%3At%2CexperimentVersion%3An%2CtargetingInputs%3Ar%7D)%7Bif(t)return%7BexperimentName%3Ae%2Cvariant%3At%2CexperimentVersion%3An%2C...r%26%26%7BtargetingInputs%3Ar%7D%7D%7Dfunction%20getParentHoldoutGroupExposureInput(e)%7Bif(e%3F.variantName)return%7BexperimentName%3Ae.featureName%2Cvariant%3Ae.variantName%2CexperimentVersion%3A%60%24%7Be.featureVersion%7D%60%7D%7Dfunction%20isExposeVariantInput(e)%7Breturn%20e!%3D%3Dvoid%200%7Dconst%20jsChallengeReferrerCache%3D%7BisMatch%3A!1%7D%2CisMatchingEmptyOriginalReferrerJsChallenge%3De%3D%3E%7Bif(jsChallengeReferrerCache.href!%3D%3De)%7Blet%20t%3Dnew%20URL(e)%2Cn%3DsafeUrl(document.referrer)%3BjsChallengeReferrerCache.href%3De%2CjsChallengeReferrerCache.isMatch%3Dt.searchParams.get(%60js_challenge%60)%3D%3D%3D%601%60%26%26t.searchParams.get(%60jsc_orig_r%60)%3D%3D%3D%60%60%26%26!!n%26%26t.origin%3D%3D%3Dn.origin%26%26t.pathname%3D%3D%3Dn.pathname%7Dreturn%20jsChallengeReferrerCache.isMatch%7D%2CexposeJsChallengeReferrerTelemetryExperiment%3D()%3D%3E%7Blet%20e%3DgetClientExperimentVariant(SHREDDIT_JS_CHALLENGE_REFERRER_TELEMETRY_EXPERIMENT_NAME)%2Ct%3DgetClientExperimentVersion(SHREDDIT_JS_CHALLENGE_REFERRER_TELEMETRY_EXPERIMENT_NAME)%3B!e%7C%7C!t%7C%7CexposeClientExperiment(%7BexperimentName%3ASHREDDIT_JS_CHALLENGE_REFERRER_TELEMETRY_EXPERIMENT_NAME%2Cvariant%3Ae%2CexperimentVersion%3At%2CexposeOnce%3A!0%7D)%7D%2CgetDocumentReferrerForTelemetry%3D()%3D%3EisMatchingEmptyOriginalReferrerJsChallenge(window.location.href)%3F(exposeJsChallengeReferrerTelemetryExperiment()%2CisClientExperimentEnabled(SHREDDIT_JS_CHALLENGE_REFERRER_TELEMETRY_EXPERIMENT_NAME)%3F%60%60%3Adocument.referrer)%3Adocument.referrer%2Creferrer%3D(e%3D%60%60%2Ct%3D%60%60)%3D%3E%7Blet%20n%3DgetEmbedOverrideReferrerFromHref(t)%3Bif(n)return%20n%3Blet%20r%3D%60%60%3Btry%7Br%3De%26%26new%20URL(e)%3F.hostname%7C%7C%60%60%7Dcatch(e)%7B%7Dreturn%7Burl%3Ae%2Cdomain%3Ar%7D%7D%2CdataFromScreenView%3De%3D%3E%7Blet%20t%3D%7B%7D%3Btry%7Bt%3DJSON.parse(document.querySelector(%60shreddit-screenview-data%60)%3F.getAttribute(%60data%60)%3F%3F%60%7B%7D%60)%7Dcatch(e)%7Bwindow.Sentry.captureException(Error(%60Unable%20to%20parse%20screenview%20data%60%2C%7Bcause%3Ae%7D))%7Dreturn%20e%3Ft%5Be%5D%3At%7D%2CgetCommonEventData%3D()%3D%3E%7Blet%20e%3Ddocument.getElementsByTagName(%60shreddit-app%60)%3F.%5B0%5D%3F.getAttribute(%60referrer%60)%7C%7CgetDocumentReferrerForTelemetry()%2Ct%3DsafeUrl(e)%2Cn%3Bif(t%26%26isRedditReferral(t.hostname))%7Blet%20e%3Dt.pathname%3Bn%3DisClientExperimentEnabled(%60shreddit_pdp_telemetry_code_yellow_killswitch%60)%3Fvoid%200%3AgetPathnamePageTypeRecord(e)%7Delse%20t%26%26(n%3D%60deeplink%60)%3Breturn%7Breferrer%3Areferrer(e%2Cwindow.location.href)%2Cclient_timestamp%3ADate.now()%2C...n%3F%7Bnavigation_session%3A%7Breferring_page_type%3An%7D%7D%3A%7B%7D%7D%7D%2CgetDataFromScreenView%3D(e%2Ct%2Cn%3DdataFromScreenView)%3D%3E%7Bif(t%3F.%5Be%5D)return%7B%7D%3Blet%20r%3Dn(e)%3Breturn%20r%3F%7B%5Be%5D%3Ar%7D%3A%7B%7D%7D%3Bfunction%20buildEvent(e%2Ct)%7Blet%7Bsource%3An%2Caction%3Ar%2Cnoun%3Ai%2C...a%7D%3DnormalizeBuildEventSanInput(e)%2Co%3D%7B...t%7C%7C%7B%7D%2Csource%3An%2Caction%3Ar%2Cnoun%3Ai%2C...getCommonEventData()%2C...getDataFromScreenView(%60post%60%2Ct)%2C...a%7D%3Breturn%20o.screen%3D%7B...t%3F.screen%3F%3F%7B%7D%2Cdevice_pixel_ratio%3Awindow.devicePixelRatio%2Cwidth%3Awindow.screen.width%2Cheight%3Awindow.screen.height%2Cviewport_width%3Awindow.innerWidth%2Cviewport_height%3Awindow.innerHeight%7D%2CdeepMergeTimestampMetadata(o%2C%7Bshreddit_client_timestamps%3A%7Bfrontend_start_timestamp%3ADate.now()%7D%7D)%7Dconst%20getPathnamePageTypeRecord%3De%3D%3E%7Blet%20t%3De%3F.toLowerCase()%3Bif(!t)return%3Blet%20n%3DsessionStorage.getItem(%60pathname-page-type-map%60)%3Breturn(n%3FJSON.parse(n)%3A%7B%7D)%5Bt%5D%7D%2CCDN_TRACE_METRIC_NAME%3D%60reddit-ct%60%2CCT_KEYS%3Dnew%20Set(%5B%60v%60%2C%60dn%60%2C%60p%60%2C%60cs%60%2C%60rb%60%5D)%2CparseCtMetrics%3De%3D%3E%7Bif(!e)return%20null%3Blet%20t%3D%7B%7D%3Bfor(let%20n%20of%20e.split(%60%2C%60))%7Blet%20e%3Dn.indexOf(%60%3D%60)%3Bif(e%3D%3D%3D-1)continue%3Blet%20r%3Dn.slice(0%2Ce)%2Ci%3Dn.slice(e%2B1)%3Br%26%26i%26%26CT_KEYS.has(r)%26%26(t%5Br%5D%3Di)%7Dreturn%20Object.keys(t).length%3E0%3Ft%3Anull%7D%2CKNOWN_CONTENT_ENCODINGS%3D%5B%60gzip%60%2C%60br%60%2C%60zstd%60%2C%60dcz%60%2C%60dcb%60%2C%60deflate%60%2C%60identity%60%2C%60%60%5D%2CisKnownContentEncoding%3De%3D%3EKNOWN_CONTENT_ENCODINGS.some(t%3D%3Et%3D%3D%3De)%2CcontentEncodingToAssetContentEncoding%3De%3D%3E%7Bif(e%3D%3D%3Dvoid%200)return%60unknown%60%3Blet%20t%3De.toLowerCase()%3Breturn%20isKnownContentEncoding(t)%3Ft%3A%60unknown%60%7D%2CgetBrowserNetworkInfo%3D(e%3Dnavigator)%3D%3E%7Blet%20t%3De.connection%3F%3Fe.mozConnection%3F%3Fe.webkitConnection%3Bif(!t)return%3Blet%20n%3D%7B%7D%3Breturn%20typeof%20t.effectiveType%3D%3D%60string%60%26%26(n.effectiveType%3Dt.effectiveType)%2CNumber.isFinite(t.downlink)%26%26(n.downlink%3Dt.downlink)%2CNumber.isFinite(t.rtt)%26%26(n.rtt%3Dt.rtt)%2Ctypeof%20t.type%3D%3D%60string%60%26%26(n.type%3Dt.type)%2Ctypeof%20t.saveData%3D%3D%60boolean%60%26%26(n.saveData%3Dt.saveData)%2CObject.keys(n).length%3E0%3Fn%3Avoid%200%7D%2CgetBrowserNetworkInfoForEvent%3D()%3D%3E%7Blet%20e%3DgetBrowserNetworkInfo()%3Bif(!e)return%3Blet%20t%3D%7Beffective_type%3Ae.effectiveType%2Cdownlink%3Ae.downlink%2Crtt%3Ae.rtt%2Ctype%3Ae.type%2Csave_data%3Ae.saveData%7D%3Breturn%20e%3F%7Bbrowser_network_info%3At%7D%3Avoid%200%7D%2CALLOWED_ASSET_TIMING_TYPES%3D%5B%60js%60%2C%60css%60%2C%60document%60%5D%2CINITIATOR_TYPE_TO_ASSET_TYPE%3D%7Bnavigation%3A%60document%60%2Cscript%3A%60js%60%2Clink%3Ae%3D%3Ee.endsWith(%60.js%60)%3F%60js%60%3Ae.endsWith(%60.css%60)%3F%60css%60%3Anull%2Ccss%3A%60css%60%7D%2Cdelay%3De%3D%3Enew%20Promise(t%3D%3EsetTimeout(t%2Ce))%2CMAX_PAGE_LOAD_TIMING%3D6e5%2CUINT32_MAX%3D4294967295%2CsanitizeAssetTimingSizeBytes%3De%3D%3Etypeof%20e%3D%3D%60number%60%26%26Number.isFinite(e)%26%26e%3E%3D0%26%26e%3C%3D4294967295%3FMath.round(e)%3A0%3Basync%20function%20measureTotalPageLoad(e%3D!1%2Ct%3Dwindow.performance)%7Blet%20n%3De%3Ft.now()%3A0%3Bt.mark(%60total-page-load-start%60)%3Blet%20r%3D!1%2Ci%3D!1%2Ca%3D-1%3Bwindow.addEventListener(%60beforeRoute%60%2C()%3D%3Er%3D!0)%2Cwindow.addEventListener(%60afterRoute%60%2C()%3D%3E%7Bi%3D!0%2Ca%3Dt.now()%7D)%3Blet%20o%3D-1%2Cs%3Dnew%20PerformanceObserver(e%3D%3E%7Be.getEntries().forEach(e%3D%3E%7Be.entryType%3D%3D%3D%60longtask%60%26%26e.duration%3E%3D50%26%26(o%3De.startTime%2Be.duration)%7D)%7D)%2Cc%3DPerformanceObserver.supportedEntryTypes.includes(%60longtask%60)%3Bc%26%26s.observe(%7Btype%3A%60longtask%60%7D)%3Blet%20l%3DALLOWED_ASSET_TIMING_TYPES.reduce((e%2Ct)%3D%3E(e%5Bt%5D%3D%7Btype%3At%2Ccount%3A0%2Ccached%3A0%2Ccontent_encoding%3A%60unknown%60%2Ctotal_encoded_size_bytes%3A0%2Ctotal_decoded_size_bytes%3A0%2Ctotal_download_size_bytes%3A0%2Ctotal_load_time_ms%3A0%2Ccumulative_load_time_ms%3A0%2CearliestResourceStart%3A1%2F0%2ClatestResourceEnd%3A-1%2F0%2Cblocking_count%3A0%7D%2Ce)%2C%7B%7D)%2Cu%3D(%7Bname%3Ae%2CinitiatorType%3At%2CstartTime%3An%2CresponseEnd%3Ar%2CtransferSize%3Ai%2CcontentEncoding%3Aa%3Dvoid%200%2CdecodedBodySize%3Ao%2CencodedBodySize%3As%2CrenderBlockingStatus%3Ac%3D%60%60%7D)%3D%3E%7Blet%20u%3Dtypeof%20INITIATOR_TYPE_TO_ASSET_TYPE%5Bt%5D%3D%3D%60function%60%3FINITIATOR_TYPE_TO_ASSET_TYPE%5Bt%5D(e)%3AINITIATOR_TYPE_TO_ASSET_TYPE%5Bt%5D%3Bif(!u)return%3Blet%20d%3Dl%5Bu%5D%3Bif(!d)return%3Blet%20f%3DsanitizeAssetTimingSizeBytes(s)%2Cp%3DsanitizeAssetTimingSizeBytes(o)%2Cm%3DsanitizeAssetTimingSizeBytes(i)%3Bd.content_encoding%3DcontentEncodingToAssetContentEncoding(a)%2Cd.count%2B%2B%2Cm%3D%3D%3D0%26%26p%3E0%3Fd.cached%2B%2B%3A(d.total_decoded_size_bytes%2B%3Dp%2Cd.total_encoded_size_bytes%2B%3Df%2Cd.total_download_size_bytes%2B%3Dm%2Cd.cumulative_load_time_ms%2B%3Dr-n%2Cd.earliestResourceStart%3DMath.min(d.earliestResourceStart%2Cn)%2Cd.latestResourceEnd%3DMath.max(d.latestResourceEnd%2Cr))%2Cc%3D%3D%3D%60blocking%60%26%26d.blocking_count%2B%2B%7D%2Cd%3Dnew%20PerformanceObserver(e%3D%3E%7Be.getEntriesByType(%60navigation%60).forEach(e%3D%3E%7Bu(e)%7D)%7D)%3Bnew%20PerformanceObserver(e%3D%3E%7Be.getEntries().forEach(e%3D%3E%7Bif(e.entryType%3D%3D%3D%60resource%60)%7Blet%7Bname%3At%2CinitiatorType%3An%7D%3De%3B(t.includes(CLIENT_CONFIG.STATIC_BASE_URL)%7C%7Ct.includes(CLIENT_CONFIG.RUNTIME_CONCAT_BASE_URL))%26%26INITIATOR_TYPE_TO_ASSET_TYPE%5Bn%5D%26%26u(e)%3Blet%20r%3De%3Bif(r.initiatorType%3D%3D%3D%60fetch%60%26%26r.serverTiming)%7Blet%20e%3Dr.serverTiming.find(e%3D%3Ee.name%3D%3D%3D%60requestType%60)%2Ct%3Dr.serverTiming.find(e%3D%3Ee.name%3D%3D%3D%60reddit-ct%60)%3Bif(e%26%26t)%7Blet%20n%3De.description%3D%3D%3D%60hybrid%60%3BdispatchCTDataUpdate(parseCtMetrics(t.description)%2Cn)%7D%7D%7D%7D)%7D).observe(%7Btype%3A%60resource%60%2Cbuffered%3A!e%7D)%2Cd.observe(%7Btype%3A%60navigation%60%2Cbuffered%3A!e%7D)%3Blet%20f%3D0%2Cp%3D-1%2Cm%3De%3D%3Ee.target%3F.nodeName%3D%3D%3D%60FACEPLATE-IMG%60%3Bwindow.addEventListener(%60faceplate-load-start%60%2Ce%3D%3E%7Bm(e)%7C%7Cf%2B%2B%7D)%2Cwindow.addEventListener(%60faceplate-load%60%2Ce%3D%3E%7Bm(e)%7C%7C(f--%2Cp%3Dt.now())%7D)%2Cdocument.readyState!%3D%3D%60complete%60%26%26await%20new%20Promise(e%3D%3Ewindow.addEventListener(%60load%60%2Ce%2C%7Bonce%3A!0%7D))%3Blet%20h%3Dt.now()%3Bfor(%3Bt.now()-n%3CMAX_PAGE_LOAD_TIMING%3B)%7Bif(await%20delay(1e3)%2Cr)return%3Bif(!(e%26%26!i)%26%26!(f%3E0))%7Bif(o%3D%3D%3D-1)return%20g(Math.max(h%2Cp%2Ca))%3Bif(o%3C%3Dh)return%20g(h)%3Bh%3DMath.max(o%2Cp%2Ca)%7D%7Dg(n%2BMAX_PAGE_LOAD_TIMING)%3Bfunction%20g(e)%7Blet%20r%3De-n%3Bt.mark(%60total-page-load-end%60%2C%7BstartTime%3Ae%7D)%2Ct.measure(%60total-page-load%60%2C%7Bstart%3An%2Cend%3Ae%7D)%2CsendMetric(r)%2CmeasureAssetMetrics(l%2Cc)%7D%7Dfunction%20measureAssetMetrics(e%2Ct)%7Bfor(let%20n%20of%20Object.values(e))%7Blet%7Btype%3Ae%2Ccount%3Ar%2Ccached%3Ai%2Cblocking_count%3Aa%2Ccontent_encoding%3Ao%2Ctotal_decoded_size_bytes%3As%2Ctotal_encoded_size_bytes%3Ac%2Ctotal_download_size_bytes%3Al%2CearliestResourceStart%3Au%2ClatestResourceEnd%3Ad%2Ccumulative_load_time_ms%3Af%7D%3Dn%2Cp%3Ddocument.querySelector(%60shreddit-app%60)%2Cm%3Du!%3D%3D1%2F0%26%26d!%3D%3D-1%2F0%3Fd-u%3A0%2Ch%3DbuildEvent(%7Bsource%3A%60browser%60%2Caction%3A%60observe%60%2Cnoun%3A%60performance%60%7D%2C%7Bbrowser_context%3A%7B...getBrowserNetworkInfoForEvent()%7D%2Cstatic_asset_usage%3A%7Basset_type%3Ae%2Ccount%3Ar%2Ccache_hit_rate%3Ar%3D%3D%3D0%3F0%3Ai%2Fr%2Ccontent_encoding%3Ao%2Ctotal_encoded_size_bytes%3Ac%2Ctotal_decoded_size_bytes%3As%2Ctotal_download_size_bytes%3Al%2Ctotal_load_time_ms%3Am%2Ccumulative_load_time_ms%3Af%2Cblocking_count%3Aa%2Clong_task_supported%3At%7D%7D)%3Bp%26%26trackEvent(p%2Ch)%7D%7Dfunction%20dispatchCTDataUpdate(e%2Ct)%7Be%26%26document.querySelector(%60shreddit-app%60)%3F.dispatchEvent(new%20CustomEvent(%60ct-data-update%60%2C%7Bdetail%3A%7Bdata%3Ae%2CisNavigation%3At%7D%7D))%7Dfunction%20sendMetric(e)%7Blet%20t%3Dnew%20CustomEvent(%60faceplate-request%60%2C%7Bdetail%3A%7Bresource%3A%60%2Fsvc%2Fshreddit%2FperfMetrics%60%2Crequest%3A%7Bbody%3A%7Bmetrics%3A%7B%22total-page-load%22%3AMath.round(e)%7D%7D%7D%7D%7D)%3Bdocument.querySelector(%60shreddit-app%60)%3F.dispatchEvent(t)%7DmeasureDomContentLoaded()%2CmeasureTotalPageLoad()%3Blet%20bufferingAlerts%3D!0%3Bconst%20alertBuffer%3D%5B%5D%3Bfunction%20handleUnhandledAlert(e)%7BbufferingAlerts%26%26alertBuffer.push(e)%7Dwindow.addEventListener(%60faceplate-alert%60%2ChandleUnhandledAlert)%2Cwindow.setTimeout(()%3D%3E%7Bif(bufferingAlerts%3D!1%2Cwindow.removeEventListener(%60faceplate-alert%60%2ChandleUnhandledAlert)%2CalertBuffer.length)for(let%20e%20of%20alertBuffer)e.target%26%26window.navigator.onLine%26%26e.target.dispatchEvent(customEvent(%60faceplate-alert%60%2Ce.detail))%7D%2C5e3)%3Bfunction%20handleNoResolve(e)%7Bwindow.Sentry.captureException(Error(%60Request%20resolution%20halted%20due%20to%20issue%20with%20GVS%20event%3A%20%24%7BJSON.stringify(e.detail)%7D%60))%7Dwindow.addEventListener(%60no-resolve%60%2ChandleNoResolve)%3B%0A
|
Кол-во: 22
HTTP-заголовки ответа сервера
?
Заголовки сервера передают браузеру и поисковику служебную информацию: кеширование, безопасность (CSP, HSTS), сжатие (gzip). Правильная настройка ускоряет загрузку и повышает защищённость.
полный список серверных заголовков
Не определена
Система управления сайтом (движок)
?
CMS — это движок, на котором работает сайт (WordPress, 1C-Bitrix, Tilda и др.). Знание CMS помогает понять возможности SEO-оптимизации и подобрать подходящие инструменты. «Не определена» — вероятно, самописный сайт или нестандартная сборка.
CMS не определена. Вероятно, сайт самописный либо движок надёжно скрыт. Это не ошибка.
snooserv
Программное обеспечение сервера
?
Веб-сервер — это ПО, которое отдаёт страницы посетителям (nginx, Apache, IIS, LiteSpeed и др.). Определяется по серверным заголовкам ответа (Server, X-Powered-By и т.п.). «Не определён» — сервер намеренно скрывает эти заголовки, это нормальная практика безопасности.
В заголовке Server указано: snooserv.
Ошибок нет
Семантические HTML-элементы страницы
?
Проверяет наличие основных структурных элементов: nav, header, footer, main. Корректная семантическая структура помогает поисковику понять архитектуру страницы.
Структура документа корректна (теги <html> и <body> присутствуют в единственном экземпляре).
Есть ошибки
Объём и качество текстового содержимого
?
Анализирует объём полезного текста на странице. Слишком мало — страница может считаться малополезной. Слишком много — ухудшается читаемость и восприятие.
Слова из title 1 встречаются в тексте редко. Добавьте в контент страницы слова из тега <title>!
Абзацев с текстом 0 слишком мало. Добавьте больше абзацев с текстом (тег <p>)!
Среднее число слов в абзаце 0 слишком мало. Сделайте контент более читаемым!
Кол-во знаков контента 20 слишком мало. Добавьте больше текста!
Кол-во слов 4 слишком мало. Добавьте больше текста (минимум 400 слов)!
Есть ошибки
Иерархия заголовков H1–H6
?
H1 должен быть один и содержать ключевой запрос. H2–H6 описывают подразделы. Пропуск уровней (H1 → H3) и несколько H1 — типичные ошибки, снижающие понятность страницы для поисковика.
Не обнаружено заголовков на странице. Добавьте заголовки (<h1>, <h2> или <h3>)
Индексирование
star
star
star
Есть ошибки
Разрешено ли индексирование страницы
?
Проверяет, не закрыта ли страница от индексации через robots.txt, meta robots или X-Robots-Tag. Страница, закрытая от индексации, не появится в поисковой выдаче.
Анкоров на странице 1 слишком мало или они запрещены к индексации. Добавьте новые страницы на сайт и расставьте ссылки на них на главной странице и в файле robots.txt.
Robots.txt
star
star
star
Содержит ошибки
Файл управления сканированием сайта роботами
?
Robots.txt указывает поисковым роботам, какие страницы сканировать, а какие — нет. Ошибки в файле могут случайно закрыть важные разделы от индексации.
Проверяемая страница запрещена к индексации в robots.txt. Исправьте файл robots.txt!
Цепочка редиректов для файла robots.txt:
http://old.reddit.com/robots.txt
301 MovedPermanently
https://old.reddit.com/robots.txt
200 OK
Показать содержимое robots.txt
User-Agent: *
Disallow: /
Конкуренты в Яндексе
star
star
star
Кол-во: 0
Топ сайтов-конкурентов в Яндексе
?
Сайты, чаще всего появляющиеся в ТОПе Яндекса по запросам из семантического ядра этой страницы.
Мы не нашли у вас конкурентов в Яндексе. Сайт или очень молодой или плохо продвигается.
Конкурентов в ТОП-10 Яндекса не нашлось.
Конкуренты в Google
star
star
star
Кол-во: 0
Топ сайтов-конкурентов в Google
?
Сайты, чаще всего появляющиеся в ТОПе Google по запросам из семантического ядра этой страницы.
Конкуренты в Google тоже не найдены. Займитесь продвижением сайта!
Конкурентов в ТОП-10 Google не нашлось.