{
  "@context": "https://schema.org",
  "@type": "Report",
  "schema_version": "1.1",
  "content_item_id": "research-source-change-monitoring-experiment.ru",
  "translation_group_id": "research-source-change-monitoring-experiment",
  "locale": "ru",
  "type": "research",
  "section": "research",
  "slug": "source-change-monitoring-experiment",
  "title": "Эксперимент: как отличить шум HTML от изменения документации",
  "description": "Воспроизводимый пилот на открытых снимках источника без выдуманных числовых результатов.",
  "direct_answer": "Чтобы понять, изменился ли смысл документации, одного diff сырого HTML недостаточно. Снимайте открытый URL, нормализуйте шумные элементы, сравнивайте извлечённый текст и структуру, а затем вручную проверяйте потенциально значимые фрагменты. Результат этого материала — методология и пилотный протокол, а не количественная оценка: числовые наблюдения нужно получить при фактическом запуске эксперимента.",
  "sections": [
    {
      "heading": "1. Вопрос и различие сигналов",
      "paragraphs": [
        "Вопрос эксперимента: как отличить raw HTML churn от meaningful documentation change на открытом URL? Raw churn — изменение байтов, которое не меняет извлечённый тезис или структуру ответа. Meaningful change — добавление, удаление или исправление содержания, сущности, ссылки, даты либо ограничения, способное изменить понимание читателя или извлечение ответа. Это исследовательское определение нужно зафиксировать до просмотра результатов."
      ],
      "source_ids": [
        "google-crawl"
      ]
    },
    {
      "heading": "2. Открытый sample",
      "paragraphs": [
        "Пилот использует только публичные документы, например страницы Google Search Central и открытые страницы документации о краулерах. Для каждого URL запишите дату и время UTC, HTTP status, content type, final URL, размер ответа, hash сырого тела и сохранённый снимок. Не включайте закрытые клиентские страницы, cookies, токены, персональные данные или внутренние логи. Список URL и манифест должны быть опубликованы вместе с кодом нормализации."
      ],
      "source_ids": [
        "google-ai-search"
      ]
    },
    {
      "heading": "3. Метод снимка",
      "paragraphs": [
        "Получите HTML обычным HTTP-клиентом с честно обозначенным User-Agent и сохраните заголовки ответа отдельно. Проверьте robots.txt и условия использования источника; не обходите ограничения. Для повтора храните URL, команду или скрипт, дату, timezone, redirect chain и checksum. Снимок считается пригодным, если другой исследователь может скачать тот же публичный адрес и понять, какие входы породили diff."
      ],
      "source_ids": [
        "openai-bots"
      ]
    },
    {
      "heading": "4. Нормализация и слои сравнения",
      "paragraphs": [
        "Сравните четыре слоя: raw bytes; HTML после удаления динамических timestamp, nonce, tracking-параметров и явно служебных узлов; извлечённый видимый текст с сохранением заголовков, списков и ссылок; структурированный набор сущностей, тезисов, дат и outbound URLs. Правила удаления должны быть детерминированными и версионироваться. Нельзя удалять всё незнакомое: нормализация, которая стирает реальное предложение, маскирует meaningful change."
      ],
      "source_ids": [
        "google-crawl"
      ]
    },
    {
      "heading": "5. Пилотный результат и ручная истина",
      "paragraphs": [
        "Этот материал не заявляет числового результата: пилотный результат — воспроизводимый способ получить кандидатов, а не подтверждённая доля изменений. Для каждого diff два оценщика присваивают label noise, meaningful или unclear и цитируют изменившийся фрагмент. Разногласия разрешаются третьим оценщиком или правилом, записанным заранее. Отдельно отмечайте изменения, которые видны только в raw bytes, и изменения, которые переживают все слои нормализации."
      ],
      "source_ids": [
        "google-crawl"
      ]
    },
    {
      "heading": "6. Ограничения",
      "paragraphs": [
        "Без повторного сбора нельзя оценить частоту churn или точность классификатора. Динамический рендеринг, A/B-тест, география, rate limit, CDN и персонализация могут дать разные снимки. Удаление timestamp может ошибочно убрать важную дату. Hash доказывает различие байтов, но не смысл. Даже meaningful documentation change не доказывает, что AI-поверхность обновила индекс или изменила цитирование."
      ],
      "source_ids": [
        "openai-bots"
      ]
    },
    {
      "heading": "7. Репликация и расширение",
      "paragraphs": [
        "1) Скопируйте манифест публичных URL. 2) Запустите сборщик в двух заранее назначенных временных окнах UTC. 3) Проверьте status, redirect и checksum. 4) Примените зафиксированную версию нормализатора. 5) Получите diffs по четырём слоям. 6) Проведите независимую ручную разметку и сохраните решения. 7) Опубликуйте сырые снимки, нормализованные представления, код, версии зависимостей и журнал ошибок. Затем можно добавить контрольные страницы и оценить agreement, но числа появятся только после запуска."
      ],
      "source_ids": [
        "google-crawl"
      ]
    },
    {
      "heading": "8. Практический пайплайн проверки",
      "paragraphs": [
        "Разделите сборку на неизменяемые шаги. Collector получает ответ и манифест; parser извлекает заголовки, текст, ссылки и даты; normalizer создаёт версию с правилами; differ формирует кандидатов; reviewers присваивают label. Каждый шаг пишет версию инструмента, входной hash и время. Если один URL недоступен, не подменяйте его новым адресом без записи: пропуск должен остаться видимым. Повторный запуск с тем же манифестом должен быть идемпотентным и не плодить копии снимка."
      ],
      "source_ids": [
        "google-crawl",
        "openai-bots"
      ]
    },
    {
      "heading": "9. Как проверять нормализатор",
      "paragraphs": [
        "До анализа реальных изменений создайте небольшой набор контрольных HTML-файлов. В один добавьте timestamp, nonce и tracking-параметр; в другой измените предложение, заголовок, ссылку и дату; третий сделайте с динамическим меню. Ожидаемый результат должен быть зафиксирован заранее: шум удаляется, смысловые изменения сохраняются. Проверяйте не только precision кандидатов, но и опасные пропуски. Любое изменение правила нормализации получает новую версию и повторный прогон контрольного набора."
      ],
      "source_ids": [
        "google-crawl"
      ]
    },
    {
      "heading": "10. Интерпретация и публикация",
      "paragraphs": [
        "В публикации отделите четыре результата: байтовая разница, разница после нормализации, ручная метка и возможное влияние на читателя или retrieval. Последний пункт нельзя выводить автоматически из diff. Приводите изменившийся фрагмент, URL, timestamp и слой, на котором он обнаружен. Если оценщики не согласны, показывайте unclear, а не выбирайте удобный label. Такой формат делает эксперимент полезным для редакторов: он подсказывает, какую страницу прочитать и проверить, но не симулирует точность, которой у метода нет."
      ],
      "source_ids": [
        "openai-bots",
        "bing-public-web"
      ]
    },
    {
      "heading": "11. Артефакты, которые нужно сохранить",
      "paragraphs": [
        "Минимальный пакет репликации содержит manifest, сырые ответы, нормализованный текст, diff по слоям, конфигурацию и журнал решений. Для каждого файла сохраните hash, время и версию схемы. Не заменяйте снимок пересохранённой страницей: это новый артефакт с новой цепочкой происхождения. Если публикация включает фрагмент документации, проверьте лицензию и объём цитирования. В отчёте перечислите недоступные URL, ошибки парсинга и ручные исправления. Тогда следующий исследователь увидит не только итоговую картинку, но и места, где метод мог ошибиться."
      ],
      "source_ids": [
        "google-crawl",
        "openai-bots"
      ]
    }
  ],
  "published_at": "2026-09-11",
  "modified_at": "2026-09-11",
  "data_through": "2026-09-11",
  "next_review_at": "2026-10-11",
  "author": "GeoAeoAle Editorial",
  "origin": "editorial",
  "publisher": "GeoAeoAle Editorial",
  "license": "https://creativecommons.org/licenses/by/4.0/",
  "canonical_url": "https://geoaeoale.com/ru/research/source-change-monitoring-experiment/",
  "claims": [
    {
      "claim_id": "scm-html-noise",
      "text": "Сырой HTML может меняться из-за шаблона, времени сборки или служебных элементов без изменения смысла.",
      "status": "hypothesis",
      "confidence": "medium",
      "source_ids": [
        "google-crawl"
      ],
      "publication_status": "public",
      "confidentiality": "public"
    },
    {
      "claim_id": "scm-pilot-status",
      "text": "Описанный результат является пилотной методологией; количественные результаты не заявляются.",
      "status": "observed",
      "confidence": "high",
      "source_ids": [
        "google-crawl",
        "openai-bots"
      ],
      "publication_status": "public",
      "confidentiality": "public"
    }
  ],
  "sources": [
    {
      "source_id": "google-ai-search",
      "canonical_url": "https://developers.google.com/search/docs/appearance/ai-features",
      "title": "Top ways to ensure your content performs well in Google's AI experiences",
      "publisher": "Google Search Central",
      "source_type": "official",
      "locale": "en",
      "published_at": null,
      "checked_at": "2026-09-11",
      "sha256": "c6b267ed42c26ee63151c87d27de45d8882a5b7dc77c3d3dece510b21d63c300",
      "license": "Source terms apply",
      "visibility": "public"
    },
    {
      "source_id": "google-crawl",
      "canonical_url": "https://developers.google.com/search/docs/essentials/technical",
      "title": "Google Search technical requirements",
      "publisher": "Google Search Central",
      "source_type": "official",
      "locale": "en",
      "published_at": null,
      "checked_at": "2026-09-11",
      "sha256": "5fff9bd0dd8ef5fe14fdbc1b7debbf79ef3b8b6b507b21b87ac5e62b2ba25b30",
      "license": "Source terms apply",
      "visibility": "public"
    },
    {
      "source_id": "openai-bots",
      "canonical_url": "https://developers.openai.com/api/docs/bots",
      "title": "Overview of OpenAI crawlers",
      "publisher": "OpenAI Developers",
      "source_type": "official",
      "locale": "en",
      "published_at": null,
      "checked_at": "2026-09-11",
      "sha256": "ccbdef3018bd08dceaacb7fe0ea07a2020d25e201ab84aa44625827aac925440",
      "license": "Source terms apply",
      "visibility": "public"
    },
    {
      "source_id": "bing-public-web",
      "canonical_url": "https://learn.microsoft.com/en-us/microsoft-copilot-studio/guidance/generative-ai-public-websites",
      "title": "Generative answers over public websites",
      "publisher": "Microsoft Learn",
      "source_type": "official",
      "locale": "en",
      "published_at": null,
      "checked_at": "2026-09-11",
      "sha256": "a35496cfe1965d3f1f1862cda5855d6f4825c8316b1ccb5c38722916e94e96d2",
      "license": "Source terms apply",
      "visibility": "public"
    }
  ],
  "related_slugs": [
    "measuring-ai-visibility",
    "evidence-content-entities-citability",
    "how-ai-search-finds-sources"
  ],
  "limitations": [
    "Это пилотный протокол без заявленных числовых результатов; доступность и условия публичных источников могут измениться. Результаты нельзя обобщать на закрытые документы или не проверенные поверхности. Любое расширение выборки требует нового манифеста и отдельной проверки условий доступа. Это не замена полевому измерению."
  ],
  "corrections": []
}