{"versionId":"21774087-ea6a-45f0-4a8f-08dda6e2c762","articleId":"aa8d4470-4c47-4102-102b-08dd6c088db1","title":"Web crawler","tags":["Working with web content","All articles"],"content":"<html><head></head><body><div>\n<div data-testid=\"issue-comment-base.ui.comment.ak-comment.72142-content\">\n<div role=\"presentation\">\n<p data-renderer-start-pos=\"62\"><strong>NOTE: Pages to crawl must be publicly accessible.</strong><br><br>Automatically gather and synchronize content from specified, publicly accessible websites into your assistant. Theta Assist's web crawler connects your assistant to your chosen web sources, for accurate, relevant and referenced responses based on your website content.</p>\n<div class=\"mce-toc\">\n<h2>In this article</h2>\n<ul>\n<li><a href=\"#mcetoc_1ina7meq649h\">Key features</a></li>\n<li><a href=\"#mcetoc_1ina7meq649i\">Getting started</a>\n<ul>\n<li><a href=\"#mcetoc_1ina7meq649j\">Adding URLs to Crawl</a></li>\n<li><a href=\"#mcetoc_1ina7meq649k\">Starting a web crawl</a></li>\n</ul>\n</li>\n<li><a href=\"#mcetoc_1ina7meq649l\">Monitoring crawl progress</a>\n<ul>\n<li><a href=\"#mcetoc_1ina7vntf4dl\">History page</a></li>\n<li><a href=\"#mcetoc_1ina7vntf4dm\">Details page</a></li>\n<li><a href=\"#mcetoc_1ina7meq649m\">Status definitions</a></li>\n</ul>\n</li>\n<li><a href=\"#mcetoc_1ina7meq649n\">Resource limitations</a></li>\n<li><a href=\"#mcetoc_1ina7meq649o\">File synchronization</a></li>\n<li><a href=\"#mcetoc_1ina7meq649p\">Troubleshooting</a>\n<ul>\n<li><a href=\"#mcetoc_1ina7meq649q\">Common Issues</a></li>\n</ul>\n</li>\n<li><a href=\"#mcetoc_1ina7meq649r\">Cancelling a crawl</a></li>\n<li><a href=\"#mcetoc_1iqmq2e6e2g\">Deleting a crawl&nbsp;</a></li>\n<li><a href=\"#mcetoc_1ina7meq649s\">Best practices</a></li>\n<li><a href=\"#mcetoc_1ina7meq649t\">Advanced features</a>\n<ul>\n<li><a href=\"#mcetoc_1ina7meq649u\">URL run limits</a></li>\n<li><a href=\"#mcetoc_1ina7meq649v\">Queue position tracking</a></li>\n</ul>\n</li>\n</ul>\n</div>\n<h2 id=\"mcetoc_1ina7meq649h\" data-renderer-start-pos=\"413\">Key features</h2>\n<ul style=\"list-style-type: disc;\" data-indent-level=\"1\">\n<li>\n<p data-renderer-start-pos=\"429\"><strong data-renderer-mark=\"true\">Multi-URL support</strong>: Add multiple websites to be crawled</p>\n</li>\n<li>\n<p data-renderer-start-pos=\"487\"><strong data-renderer-mark=\"true\">Selective link following</strong>: Choose whether to follow links, per URL</p>\n</li>\n<li>\n<p data-renderer-start-pos=\"560\"><strong data-renderer-mark=\"true\">Exclusions</strong>: Prevent specific URLs from being crawled</p>\n</li>\n<li>\n<p data-renderer-start-pos=\"624\"><strong data-renderer-mark=\"true\">Smart updates</strong>: Detect and sync only changed content</p>\n</li>\n<li>\n<p data-renderer-start-pos=\"683\"><strong data-renderer-mark=\"true\">Detailed progress monitoring</strong>: Track crawl status and progress in real-time</p>\n</li>\n<li>\n<p data-renderer-start-pos=\"761\"><strong data-renderer-mark=\"true\">Queue management</strong>: Schedule and prioritize crawls when system resources are limited</p>\n</li>\n<li>\n<p data-renderer-start-pos=\"847\"><strong data-renderer-mark=\"true\">Cancellation</strong>: Stop crawls in progress if needed</p>\n</li>\n</ul>\n<h2 id=\"mcetoc_1ina7meq649i\" data-renderer-start-pos=\"906\">Getting started</h2>\n<h3 id=\"mcetoc_1ina7meq649j\" data-renderer-start-pos=\"923\">Adding URLs to Crawl</h3>\n<ol style=\"list-style-type: decimal;\" start=\"1\" data-indent-level=\"1\">\n<li>If you haven't already, select <strong>Show Advanced Options</strong> - this appears below the Instructions field when editing your assistant. Click Save.<br>\n<div><img src=\"https://storage.faqbot.nz/prod/0d5220bc9ad14992d05108dccd460f35/files/article_pasted_image_web-crawler_1ce5e012-8622-4263-b4a4-e50f8b704fab.png\"></div>\n</li>\n<li>\n<p data-renderer-start-pos=\"947\">Navigate to your assistant's Web Crawl tab, which should now be visible.<br><img src=\"https://portal.helpfruit.com/api/images/0d5220bc9ad14992d05108dccd460f35/files/web%20crawl%20tab.png?width=1000&amp;height=\"></p>\n</li>\n<li>\n<p data-renderer-start-pos=\"1003\">Add URLs you want to include in the crawl. Note that the pages must be publicly accessible to be able to be crawled.</p>\n<ul style=\"list-style-type: circle;\" data-indent-level=\"2\">\n<li>\n<p data-renderer-start-pos=\"1049\">Enter the complete URL (e.g. https://your-website.com/documentation)</p>\n</li>\n<li>\n<p data-renderer-start-pos=\"1086\">Select <strong>Follow Links</strong> if you want the crawler to follow links on this page</p>\n</li>\n<li>\n<p data-renderer-start-pos=\"1164\">Each URL will be assigned a unique identifier for tracking<br><img src=\"https://portal.helpfruit.com/api/images/0d5220bc9ad14992d05108dccd460f35/files/add%20URL%20to%20web%20crawl.png?width=1000&amp;height=\"></p>\n</li>\n</ul>\n</li>\n<li>\n<p data-renderer-start-pos=\"1228\">Optionally, add URLs to exclude from the crawl and select <strong>Exclude. <br></strong>Note, you can also use * at the end of a URL path for wildcard matching. For example, https://your-website.com/news/* will exclude any pages below this, eg&nbsp;https://your-website.com/news/article-one&nbsp;etc.</p>\n</li>\n</ol>\n<h3 id=\"mcetoc_1ina7meq649k\" data-renderer-start-pos=\"1278\">Starting a web crawl</h3>\n<ol style=\"list-style-type: decimal;\" start=\"1\" data-indent-level=\"1\">\n<li>\n<p data-renderer-start-pos=\"1302\">After configuring your URLs, click <strong>Start Web Crawl </strong>(bottom right)</p>\n</li>\n<li>\n<p data-renderer-start-pos=\"1369\">The system will initiate a new crawl job</p>\n</li>\n<li>\n<p data-renderer-start-pos=\"1413\">You'll be redirected to the web crawl history page, where you can monitor progress</p>\n</li>\n</ol>\n<h2 id=\"mcetoc_1ina7meq649l\" data-renderer-start-pos=\"1498\">Monitoring crawl progress</h2>\n<h3 id=\"mcetoc_1ina7vntf4dl\" data-renderer-start-pos=\"1525\">History page</h3>\n<p data-renderer-start-pos=\"1539\">The Web crawl history page displays a list of all your crawl runs with:</p>\n<ul style=\"list-style-type: disc;\" data-indent-level=\"1\">\n<li>\n<p data-renderer-start-pos=\"1614\">Creation date &amp; time</p>\n</li>\n<li>\n<p data-renderer-start-pos=\"1631\">Current status (Pending, Processing, Completed, Error, or Cancelled)</p>\n</li>\n<li>\n<p data-renderer-start-pos=\"1703\">Completion date &amp; time (if applicable)</p>\n</li>\n<li>\n<p data-renderer-start-pos=\"1738\">A <strong>Details</strong> button to view full information</p>\n</li>\n</ul>\n<p>&nbsp;</p>\n<div><strong><img src=\"https://storage.faqbot.nz/prod/0d5220bc9ad14992d05108dccd460f35/files/article_pasted_image_web-crawler_4d9712ed-c548-4105-82ae-89b4df9c6d8c.png\"></strong></div>\n<p>&nbsp;</p>\n<h3 id=\"mcetoc_1ina7vntf4dm\" data-renderer-start-pos=\"1785\">Details page</h3>\n<p data-renderer-start-pos=\"1799\">The details page provides comprehensive information about a specific crawl:</p>\n<h4 data-renderer-start-pos=\"1876\"><strong data-renderer-mark=\"true\">Crawl overview</strong></h4>\n<ul style=\"list-style-type: disc;\" data-indent-level=\"1\">\n<li>\n<p data-renderer-start-pos=\"1894\">Status: Current state of the crawl</p>\n</li>\n<li>\n<p data-renderer-start-pos=\"1932\">Created: When the crawl was initiated</p>\n</li>\n<li>\n<p data-renderer-start-pos=\"1973\">Last Activity: Most recent update time</p>\n</li>\n<li>\n<p data-renderer-start-pos=\"2015\">Completed: When the crawl finished (if applicable)</p>\n</li>\n<li>\n<p data-renderer-start-pos=\"2069\">Total Duration: How long the crawl took to complete</p>\n</li>\n<li>\n<p data-renderer-start-pos=\"2124\">Overall Progress: Percentage and number of pages visited vs. total pages</p>\n</li>\n</ul>\n<h4 data-renderer-start-pos=\"2200\"><strong data-renderer-mark=\"true\">Queue position</strong></h4>\n<p data-renderer-start-pos=\"2200\">If your crawl is pending, you'll see:</p>\n<ul style=\"list-style-type: disc;\" data-indent-level=\"1\">\n<li>\n<p data-renderer-start-pos=\"2256\">Current position in the queue</p>\n</li>\n<li>\n<p data-renderer-start-pos=\"2289\">Total crawls waiting</p>\n</li>\n<li>\n<p data-renderer-start-pos=\"2313\">Number of crawls currently running</p>\n</li>\n<li>\n<p data-renderer-start-pos=\"2351\">Maximum parallel crawls allowed by the system</p>\n</li>\n</ul>\n<h4 data-renderer-start-pos=\"2400\"><strong data-renderer-mark=\"true\">URL progress details</strong></h4>\n<p data-renderer-start-pos=\"2400\">A table showing for each URL:</p>\n<ul style=\"list-style-type: disc;\" data-indent-level=\"1\">\n<li>\n<p data-renderer-start-pos=\"2454\">URL being crawled</p>\n</li>\n<li>\n<p data-renderer-start-pos=\"2475\">Status</p>\n</li>\n<li>\n<p data-renderer-start-pos=\"2485\">Whether links are being followed</p>\n</li>\n<li>\n<p data-renderer-start-pos=\"2521\">Progress percentage</p>\n</li>\n<li>\n<p data-renderer-start-pos=\"2544\">Detailed counts (visited pages, queued pages)</p>\n</li>\n<li>\n<p data-renderer-start-pos=\"2593\">Limit indicators (if the maximum page limit was reached)</p>\n</li>\n</ul>\n<h4 data-renderer-start-pos=\"2653\"><strong data-renderer-mark=\"true\">Log information</strong></h4>\n<p data-renderer-start-pos=\"2653\">A detailed log showing:</p>\n<ul style=\"list-style-type: disc;\" data-indent-level=\"1\">\n<li>\n<p data-renderer-start-pos=\"2696\">Timestamped entries of crawl activities</p>\n</li>\n<li>\n<p data-renderer-start-pos=\"2739\">Information about files uploaded</p>\n</li>\n<li>\n<p data-renderer-start-pos=\"2775\">Any errors or warnings encountered</p>\n</li>\n<li>\n<p data-renderer-start-pos=\"2813\">Link discovery information</p>\n</li>\n</ul>\n<h3 id=\"mcetoc_1ina7meq649m\" data-renderer-start-pos=\"2843\">Status definitions</h3>\n<ul style=\"list-style-type: disc;\" data-indent-level=\"1\">\n<li>\n<p data-renderer-start-pos=\"2865\"><strong data-renderer-mark=\"true\">Pending</strong>: Crawl is waiting in queue to start</p>\n</li>\n<li>\n<p data-renderer-start-pos=\"2912\"><strong data-renderer-mark=\"true\">Processing</strong>: Crawl is actively running</p>\n</li>\n<li>\n<p data-renderer-start-pos=\"2953\"><strong data-renderer-mark=\"true\">Completed</strong>: Crawl finished successfully</p>\n</li>\n<li>\n<p data-renderer-start-pos=\"2995\"><strong data-renderer-mark=\"true\">Error</strong>: Crawl encountered an error</p>\n</li>\n<li>\n<p data-renderer-start-pos=\"3032\"><strong data-renderer-mark=\"true\">Cancelled</strong>: Crawl was manually cancelled</p>\n</li>\n</ul>\n<h2 id=\"mcetoc_1ina7meq649n\" data-renderer-start-pos=\"3075\">Resource limitations</h2>\n<p data-renderer-start-pos=\"3097\">The system has several built-in limitations to ensure optimal performance:</p>\n<ul style=\"list-style-type: disc;\" data-indent-level=\"1\">\n<li>\n<p data-renderer-start-pos=\"3175\"><strong data-renderer-mark=\"true\">Maximum URL Limit</strong>: Each URL can crawl up to a predetermined number of pages (specified in your instance's configuration)</p>\n</li>\n<li>\n<p data-renderer-start-pos=\"3299\"><strong data-renderer-mark=\"true\">Parallel Crawl Limit</strong>: The system limits how many crawls can run simultaneously</p>\n</li>\n<li>\n<p data-renderer-start-pos=\"3381\"><strong data-renderer-mark=\"true\">Queue System</strong>: When the parallel limit is reached, new crawls are placed in a queue</p>\n</li>\n</ul>\n<h2 id=\"mcetoc_1ina7meq649o\" data-renderer-start-pos=\"3467\">File synchronization</h2>\n<p data-renderer-start-pos=\"3489\">The web crawler performs smart synchronization:</p>\n<ol style=\"list-style-type: decimal;\" start=\"1\" data-indent-level=\"1\">\n<li>\n<p data-renderer-start-pos=\"3540\"><strong data-renderer-mark=\"true\">Change Detection</strong>: Files are only updated when content has changed (using hash comparison)</p>\n</li>\n<li>\n<p data-renderer-start-pos=\"3633\"><strong data-renderer-mark=\"true\">Pruning</strong>: Files that no longer exist on the website are automatically removed</p>\n</li>\n<li>\n<p data-renderer-start-pos=\"3713\"><strong data-renderer-mark=\"true\">Progress Updates</strong>: All synchronization activities are logged</p>\n</li>\n</ol>\n<p>To synchronize your assistant with the latest version of your web pages, start a new crawl.</p>\n<h2 id=\"mcetoc_1ina7meq649p\" data-renderer-start-pos=\"3776\">Troubleshooting</h2>\n<h3 id=\"mcetoc_1ina7meq649q\" data-renderer-start-pos=\"3793\">Common Issues</h3>\n<p data-renderer-start-pos=\"3808\"><strong data-renderer-mark=\"true\">Crawl Stuck in Pending Status</strong></p>\n<ul style=\"list-style-type: disc;\" data-indent-level=\"1\">\n<li>\n<p data-renderer-start-pos=\"3841\">This is normal when the system has reached its maximum parallel crawl limit</p>\n</li>\n<li>\n<p data-renderer-start-pos=\"3920\">Check the Queue Position section to see your place in line</p>\n</li>\n<li>\n<p data-renderer-start-pos=\"3982\">The crawl will start automatically when resources become available</p>\n</li>\n</ul>\n<p data-renderer-start-pos=\"4052\"><strong data-renderer-mark=\"true\">Crawl completed but missing content</strong></p>\n<ul style=\"list-style-type: disc;\" data-indent-level=\"1\">\n<li>\n<p data-renderer-start-pos=\"4091\">Check if the \"Limit Reached\" indicator appears for any URLs</p>\n</li>\n<li>\n<p data-renderer-start-pos=\"4154\">Consider breaking your crawl into smaller, more targeted URLs</p>\n</li>\n<li>\n<p data-renderer-start-pos=\"4219\">Check the logs for any errors or skipped pages</p>\n</li>\n</ul>\n<p data-renderer-start-pos=\"4269\"><strong data-renderer-mark=\"true\">Crawl ended with error status</strong></p>\n<ul style=\"list-style-type: disc;\" data-indent-level=\"1\">\n<li>\n<p data-renderer-start-pos=\"4302\">Review the Log Information section for specific error details</p>\n</li>\n<li>\n<p data-renderer-start-pos=\"4367\">Common causes include website authentication requirements, robots.txt restrictions, or network issues</p>\n</li>\n</ul>\n<h2 id=\"mcetoc_1ina7meq649r\" data-renderer-start-pos=\"4472\">Cancelling a crawl</h2>\n<p data-renderer-start-pos=\"4492\">If you need to stop a crawl in progress:</p>\n<ol style=\"list-style-type: decimal;\" start=\"1\" data-indent-level=\"1\">\n<li>\n<p data-renderer-start-pos=\"4536\">Navigate to the Web Crawl Details page for the running crawl</p>\n</li>\n<li>\n<p data-renderer-start-pos=\"4600\">Click the \"Cancel Crawl\" button in the top right</p>\n</li>\n<li>\n<p data-renderer-start-pos=\"4652\">Confirm the cancellation in the dialog</p>\n</li>\n<li>\n<p data-renderer-start-pos=\"4694\">The crawl will stop and show \"Cancelled\" status</p>\n</li>\n</ol>\n<h2 id=\"mcetoc_1iqmq2e6e2g\">Deleting a crawl&nbsp;</h2>\n<p>If you no longer wish your assistant to have access to the knowledge generated in a web crawl, you can delete the associated file.</p>\n<p>Navigate to your assistant's <strong>Files</strong> tab to delete the relevant file.</p>\n<p>&nbsp;</p>\n<h2 id=\"mcetoc_1ina7meq649s\" data-renderer-start-pos=\"4745\">Best practices</h2>\n<ol style=\"list-style-type: decimal;\" start=\"1\" data-indent-level=\"1\">\n<li>\n<p data-renderer-start-pos=\"4763\"><strong data-renderer-mark=\"true\">Start Small</strong>: Begin with a few key pages rather than entire websites</p>\n</li>\n<li>\n<p data-renderer-start-pos=\"4834\"><strong data-renderer-mark=\"true\">Use exclusion patterns</strong>: Use /* at the end of a URL path to exclude large sections of your site that are not relevant</p>\n</li>\n<li>\n<p data-renderer-start-pos=\"4935\"><strong data-renderer-mark=\"true\">Monitor progress</strong>: Check the details page during large crawls to ensure it's progressing as expected</p>\n</li>\n<li>\n<p data-renderer-start-pos=\"5038\"><strong data-renderer-mark=\"true\">Schedule during off-hours</strong>: Large crawls may be best run during low-traffic periods</p>\n</li>\n<li>\n<p data-renderer-start-pos=\"5124\"><strong data-renderer-mark=\"true\">Regular Updates</strong>: Schedule periodic re-crawls to keep your assistant's knowledge fresh</p>\n</li>\n</ol>\n<h2 id=\"mcetoc_1ina7meq649t\" data-renderer-start-pos=\"5213\">Advanced features</h2>\n<h3 id=\"mcetoc_1ina7meq649u\" data-renderer-start-pos=\"5232\">URL run limits</h3>\n<p data-renderer-start-pos=\"5248\">Each URL has a maximum page limit defined in your system configuration. When this limit is reached:</p>\n<ul style=\"list-style-type: disc;\" data-indent-level=\"1\">\n<li>\n<p data-renderer-start-pos=\"5351\">A \"Limit Reached\" indicator will appear in the URL progress section</p>\n</li>\n<li>\n<p data-renderer-start-pos=\"5422\">The crawler will stop processing new links for that URL</p>\n</li>\n<li>\n<p data-renderer-start-pos=\"5481\">Other URLs in the same crawl will continue processing</p>\n</li>\n</ul>\n<h3 id=\"mcetoc_1ina7meq649v\" data-renderer-start-pos=\"5538\">Queue position tracking</h3>\n<p data-renderer-start-pos=\"5563\">For pending crawls, the system provides detailed queue information:</p>\n<ul style=\"list-style-type: disc;\" data-indent-level=\"1\">\n<li>\n<p data-renderer-start-pos=\"5634\">Your position in the queue</p>\n</li>\n<li>\n<p data-renderer-start-pos=\"5664\">Total number of crawls waiting</p>\n</li>\n<li>\n<p data-renderer-start-pos=\"5698\">Number of crawls currently running</p>\n</li>\n<li>\n<p data-renderer-start-pos=\"5736\">Maximum parallel crawls allowed</p>\n</li>\n</ul>\n<p data-renderer-start-pos=\"5771\">This helps you estimate when your crawl will start processing.</p>\n</div>\n</div>\n</div>\n<div data-testid=\"issue-comment-base.ui.comment.ak-comment.72142-footer\">\n<div data-testid=\"issue-comment-base.ui.comment.reactions-container\">\n<div data-testid=\"render-reactions\">\n<div data-testid=\"reactionPicker-testid\">&nbsp;</div>\n</div>\n</div>\n</div>\n<p>&nbsp;</p></body></html>","description":"","isMarkdown":false,"publishedOnUtc":"2026-03-10T03:58:16.2474922","modifiedOnUtc":"2025-03-26T01:50:14.894674"}