TrawlerTrawlerPrivateFetchReplyData
TrawlerCrawlingGoogleApi.ContentWarehouse.V1.Model.TrawlerTrawlerPrivateFetchReplyData
SEO Analysis
AI GeneratedPart of Google's web crawling infrastructure (Trawler is Google's internal name for their web crawler). This model governs how Googlebot fetches and processes web pages, affecting crawl efficiency and frequency. Crawl management directly impacts how quickly new content is discovered and how often existing content is refreshed in the index.
Actionable Insights for SEOs
- Monitor for changes in rankings that may correlate with updates to this system
- Consider how your content strategy aligns with what this signal evaluates
- Optimize crawl budget by fixing broken links and reducing redirect chains
- Use robots.txt and sitemap.xml effectively to guide crawling
- Monitor Google Search Console for crawl errors and indexing issues
Attributes
48PostDataSizestringnilFull type: String.tWhat's the post data size (in bytes) if it's a post request.
numDroppedRepliesstringnilFull type: String.tNumber of times we drop the content of a stream reply or the final reply, which can only be caused by REJECTED_NO_RPC_BUFFERS now.
HintIPAddressstringnilFull type: String.tIf we do not have Endpoints in FetchReplyData (e.g., url rejected due to hostload limit), do we have a guess of the server IPAddress (e.g., from robots fetch)? This helps us classify URLs based on country code, etc. The field is filled with IPAddress::ToPackedString().
RpcStartDeadlineLeftMsinteger(nilRPC deadline left at the start of url control flow. Can be useful for debugging rpc deadline exceeded error received by clients, this field is only recorded if RpcEndDeadlineLeftMs is small enough.
largeStoreHitLocationstringnilFull type: String.tSet to the hit location (CNS filename) if cache comes from large store.
isDedicatedHostloadboolean(nildependentFetchTypestringnilFull type: String.tDependent fetch type
isVpcTrafficboolean(nilSet if the fetch goes through the virtual private cloud path so we can track the VPC traffic.
httpVersionstringnilFull type: String.tStores the HTTP version we used in the last hop.
BotGroupNamestringnilFull type: String.tIf we fetched using BotFetchAgent, what is the BotGroupName?
isBidiStreamingFetchboolean(nilWhether this is a bidirectional streaming fetch.
authenticationInfostringnilFull type: String.tStores the OAuth authentication method.
RequestUserNamestringnilFull type: String.tLog the loas username in trawler private to help with debugging. Store the username in trawler private so clients won't see it from FetchReply. To reduce disk usage, we only log the loas username if the requestorid being used does not have ClientUsernameRestrictions.
cacheHitTypestringnilFull type: String.tOnly set if the fetch uses cache content (is_cache_fetch is true).
originalClientParamsTrawlerOriginalClientParams →nilFull type: GoogleApi.ContentWarehouse.V1.Model.TrawlerOriginalClientParams.tStore the original client information.
IsRobotsFetchboolean(nilWas this an internally-initiated robots.txt fetch?
resourceBucketstringnilFull type: String.tIf the requestor shares resource bucket with other requestorids, we will store the resource bucket name in these fields.
cacheAcceptableAgeinteger(nilCorresponds to AcceptableAge field in FetchParams.
ProducerstringnilFull type: String.tNote TrawlerPrivateFetchReplyData is never sent back to clients. The following field is just for Trawler and Multiverse internal tracking, and clients should not look at this field at all.
ProxyInstancestringnilFull type: String.tIf set, this fetch was done through a proxy (e.g., fetchproxy).
cdnProviderstringnilFull type: String.tconcurrentStreamNumstringnilFull type: String.tHow many concurrent streams are on the connection when the request finishes (including this request). Export this value to monitor the stream multiplexing for HTTP/2.
cacheAcceptableAfterDateinteger(nilCorresponds to AcceptableAfterDate field in FetchParams.
credentialIdstringnilFull type: String.tLog the credential id
ResponseBytesstringnilFull type: String.tThe number of bytes we sent back to the client.
downloadFileNamestringnilFull type: String.tIf the response header contains Content-Disposition header "attachment; filename="google.zip": the download_file_name would be "google.zip"
isFloonetFetchboolean(nilWhether or not this is a Floonet fetch request. Floonet requests have inherent lower availability (due to HOPE rejections when HOPE is in degraded mode, and other Floonet specific reasons). Therefore, it is important for debugging and for our availability SLO to know whether of not it is a floonet fetch. IMPORTANT NOTE: This field is only currently set for traffic that explicitly requires Floonet and can not failover to use Googlebot (i.e. "transparent" or "implicit" Floonet fetches).
multiverseClientIdentifierTrawlerMultiverseClientIdentifier →nilFull type: GoogleApi.ContentWarehouse.V1.Model.TrawlerMultiverseClientIdentifier.tMultiverse client information
TrawlerInstancestringnilFull type: String.tWhich Trawler cell was this response fetched in? (e.g. "HR" or "YQ")
HSTSHeaderValuestringnilFull type: String.tHTTP Strict-Transport-Security (RFC6797) header value. We log this so we can generate a list of hosts that prefer HTTPS over HTTP.
tierstringnilFull type: String.tService tier info will be used in traffic grapher for ploting per tier graph.
Is5xxHostIdboolean(nilRepresents if the HostId belongs to HostId set in 5xx url patterns, it can work as a tag when emitting requestor minute summary, this helps us to aggregate traffic affected by 5xx patterns, and test if there are any fetching changes.
UserAgentSentstringnilFull type: String.tThe useragent string sent to the remote webserver. It corresponds to UserAgentToSend field in FetchParams.
googleExtendedObeyWildcardRobotsStatusinteger(nilWe check if Google-Extended is allowed to crawl this URL, wildcard rules are obeyed, this is for internal analysis. Check RobotsTxtClient::RobotsStatus for the meaning of number.
RobotsBodystringnilFull type: String.tIf this was a robots.txt fetch (IsRobotsFetch above), this may contain the robots.txt body. (It may not, for instance, 404s are omitted; current policy is URL_CRAWLED + partially crawled) This includes http headers + body.
UserAgentSentFpstringnilFull type: String.tThe fp2011 of useragent sent to the remote webserver, note it corresponds to UserAgentToSend field in FetchParams
prodRegionstringnilFull type: String.tLog the prod region (only for regional harpoon requestor ids)
RpcEndDeadlineLeftMsinteger(nilRPC deadline left at the end of url control flow. Can be useful for debugging rpc deadline exceeded error received by clients, this field is only recorded if it's small enough.
isFromGrpcProxyboolean(nilWhether or not this response is sent from gRPC proxy service.
ServerSignaturestringnilFull type: String.tAn arbitrary string signature identifying the remote server type/version. In the case of HTTP, this would be the contents of the "Server:" header.
googleExtendedRobotsStatusinteger(nilWe check if Google-Extended is allowed to crawl this URL and store the result here, wildcard rules are not obeyed, this is for internal analysis. Check RobotsTxtClient::RobotsStatus for the meaning of number.
BotHostnamestringnilFull type: String.tThis is the HOPE server that we sent the url to. We log the HOPE backend cell and hope server shard number (e.g., 'qf:6'). This allows us to understand how we are balancing our load to the HOPE servers.
subResourceBucketstringnilFull type: String.tvpcDestinationTrawlerLoggedVPCDestination →nilFull type: GoogleApi.ContentWarehouse.V1.Model.TrawlerLoggedVPCDestination.tThe following are vpc information that's only set if is_vpc_traffic is true.
bypassedHostOverfullboolean(nilCache hit for this url, bypassed host_overfull error.
CacheRequestorIDstringnilFull type: String.tPresent if the reply is from the trawler cache. This is the requestorid of the trawler client that populated the cache with the data we are reusing.
HadInMemCacheHitboolean(nilFetcherTaskNumberinteger(nilWhich Trawler fetcher task fetched this URL.