Scrutinize your website. With all the benefits of a desktop app!

Scrutiny for Mac

Scrutiny for Mac

  -  3.9 MB  -  Trial
Scrutiny for Mac is a suite of web optimization tools. Native cocoa app (i.e., not Java) fast and efficient. This is a major update from v5. This is a completely free upgrade for v5 users and there is an upgrade path from v4. Just download it and run it. It'll allow 30 days free use with only exporting disabled.

Link checking
All the features of Integrity and Integrity Plus. The same fast, efficient, accurate engine. With more power and options - authenticate (scan sites that require logging in) test links within pdf documents, render js before parsing. Also features to support and assist your migration to https. Choose whether to treat the http and https versions as one site or separate, and to list any links to http pages or http resources on https pages.

SEO
After a single scan, Scrutiny for macOS holds a vast amount of information about your site. Search it, filter it, export it. Shows a list of warnings such as missing title/description, thin content, keyword stuffed pages, images without alt text, mixed content and much more.

Sitemap
Export an xml sitemap for submission to the search engines (and in other formats too). Option to include images and pdf files. Set up rules for your priority/change frequency or edit these manually.

Spelling
Run a spelling and/or grammar check, view the results by misspelled word or by page. Uses the standard OSX functionality and your custom dictionary.

For developers
Many years of work have gone into developing and supporting the fast and accurate website crawling/spidering engine that Integrity and Scrutiny use. I'd like it to be used in other apps that need to crawl a website. A cocoa framework for the website crawling/spidering engine is available for you to try.

Features and Highlights
  • Link checker
  • SEO analysis
  • XML Sitemap generation, optionally include images / pdf pages
  • Page load speed test
  • Spelling and grammar checking
  • Scans sites requiring authentication
  • Search your site (source or visible text) obtain a list of pages containing a search term or not containing a search term
  • Website monitoring of as many URL's as you like with a choice of alerts and logging
  • Scheduling made easy with a few easy clicks (the old method using iCal will still work)
  • On finish, send an email, save a report, open a file or Applescript, FTP the sitemap XML, and other actions
  • Opens and scans a list of links in HTML, CSV, plain text format, or XML sitemap
Note: 30 days trial version. Requires 64-bit processor.

  • Scrutiny 12.9.1 Screenshots

    The images below have been resized. Click on them to view the screenshots in full size.

    Scrutiny 12.9.1 Screenshot 1
  • Scrutiny 12.9.1 Screenshot 2
  • Scrutiny 12.9.1 Screenshot 3
  • Scrutiny 12.9.1 Screenshot 4
  • Scrutiny 12.9.1 Screenshot 5

What's new in this version:

Scrutiny 12.9.1
- Fixes a problem experienced when running on Sonoma upwards where scans would not start at the scheduled time


Scrutiny 12.9.0
- Previously failed to parse a page if the page contained zero hyperlinks. Now will parse a page with zero hyperlinks if it has at least one image on it.
- improves the parsing of an image srcset where unencoded commas are present within urls
- adds a warning if an srcset contains width descriptor(s) as well as pixel density descriptor(s)


Scrutiny 12.8.10
- Fixes bug which caused some dcx files to not be scanned when that option was switched on


Scrutiny 12.8.9
- Some fixes to Spelling tables to problems that could have caused slowness, hangs or crash, particularly after sorting the 'by word' table


Scrutiny 12.8.8
- Small change to text encoding of Location window
- Fix for Digest authentication method


Scrutiny 12.8.7
- Fixes a possible crash when using 'highlight' feature from within Link Inspector
- Updates the list of user-agent strings so that they're current versions


Scrutiny 12.8.6
- Fixes a layout problem with the page inspector (available in SEO and Sitemap tables)
- Improves the fetching of images for the image preview window in the SEO>Images table. This may have been problematic for some users.


Scrutiny 12.8.5
- Important fix for all users. Using 'Limit crawl based on robots.txt' could cause the scan to stall if the user is blocking AI training bots. This is because Integrity was misinterpreting "User-agent: Google-Extended" (Bard) as one of the web indexing Google bots.


Scrutiny 12.8.4
- Fixes a problem with the 'image weight' column of the SEO table


Scrutiny 12.8.3
- Fixes a problem with the link inspector not displaying all instances of the link url if it appears multiple times on a particular page
- Now generates a warning if a link that appears to be internal (from its domain) but is marked rel=external. This may be deliberate and is legal but there are serious SEO implications if it happens unintentionally.
- Despite collecting the data and possibly generating a warning, Integrity does not *observe* the rel=external at this point. ie if it is internal according to its domain, integrity does not mark it as an external link or treat it as external, ie not following it. This does raise some questions and the matter is left open at this point.
- Now observes rel=nofollow in a link, if at the point the engine comes to follow that link, *all instances discovered so far* are marked 'rel=nofollow'. In other words if an instance has been discovered at that point which doesn't have the nofollow keyword in its rel, then the link will be followed.


Scrutiny 12.8.2
- Fixes a possible issue with character encoding


Scrutiny 12.8.1
Fixed:
- some false results in the spellcheck, which were due to concatenation of words with certain settings and when certain html tags run together
- selected spellcheck language not being 'remembered' sometimes
- potential horizontal scroll issue in SEO>Summary


Scrutiny 12.8.00
- More clearly marks image tags with empty source. Previously 'flag missing link url' would also pick up img tags with missing src, if image check was switched on, but would confusingly mark them with the status "missing link url". Now the images are given the status "missing image src" so that they can be distinguished from missing link urls in the By Status and other views.
- Fixes a bug that caused 'urls' containing a bunch of javascript to appear as bad links under very specific and unlikely circumstances


Scrutiny 12.7.12
- Adds Expand All and Collapse All to View menu with keyboard shortcuts, and buttons for those functions to the toolbar palette. These will expand / collapse all items in the current view, if the view is expandable, eg by page, by status, Spelling by word.


Scrutiny 12.7.11
- Fixes bug that may have prevented pdfs from correctly being included in the sitemap if the preference was checked or caused them to be included even if the preference was unchecked. Now this behaves as expected according to the preference.


Scrutiny 12.7.10
- When scanning locally (file://) and with the 'test anchors' setting switched on, could go into a loop


Scrutiny 12.7.9
- Fixes 'list' view of sitemap visualisation not appearing correctly when system in light mode
- Adds checkmark to the 'sort by' popup button above list of websites
- Fixes the issues with sorting some of the columns of the 'All links' table


Scrutiny 12.7.8
- Small fix for a problem that will affect very few users, but will be a very important fix for those users. If the starting url has a path, and that path contains encoded characters (eg %20) and relative links on the page then the crawl may not proceed past the first page.


Scrutiny 12.7.7
- Some improvements around the collection and counting of image urls
- Fix - if 'alt' attribute wasn't included at all within an img tag, then the image wasn't always being counted as an 'image without alt text'


Scrutiny 12.7.6
- Adds 'redirect count' as an optional column to the All links table. Sorting this table will find links with the longest redirect chains. This appeared with the SEO results in version 10 and earlier. However, redirect count isn't a property of pages but link urls (different link urls may arrive at the same page via different numbers of redirects.)
- At the end of a scan, if user hasn't added a name for the configuration, "A new website" is automatically replaced with the first word or two from the starting url's meta title


Scrutiny 12.7.5
- Fixes a problem that could cause repetition or even a loop with certain urls that contain percent-encoded characters


Scrutiny 12.7.4
- Fixes toolbar export button which, after a search, was exporting the link urls rather than the search results
- If searching, pointless listing and checking image urls, so that functionality is forced off, even if 'check images' or 'images in sitemap' are selected. (those options will be observed if a regular scan is then run.)


Scrutiny 12.7.3
- Adds double-click to SEO / Images tab for preview
- Also context menu with Preview / Copy URL / Open URL


Scrutiny 12.7.2
- Fixes a problem with the "entire source / body text" switch within the Site Search dialog.
- If search is used, subsequent scans (without quitting and restarting) would incorrectly show some search results at the end of the scan. Now fixed
- Fixes an issue causing some missing anchors to not be reported
- When testing anchors, if the anchor fragment of a url isn't found on the target page, link is now coloured red in the views and treated as a bad link, rather than being coloured orange as before.


Scrutiny 12.7.1
- Reinstates 'Export Image XML Sitemap' which was a feature of v10 but has been unintentionally missing from v12 to date
- Tidies up the image checking functionality internally. Images must be included in the scan if images are to be included in the sitemap xml or an image sitemap, so image checking is forced on if either of these settings are enabled. To disable image checking (for efficiency with certain operations) then all of these settings need to be switched off
- Fixes Description Length column of SEO table showing incorrect value
- Fixes empty lastmod tags appearing in sitemaps where no date is available. Tags are now correctly left out if no date is available (optional tag). NB Google says, if no date is available, don't insert date of sitemap generation


Scrutiny 12.7.0
- Some fixes to the 'check anchors' functionality. Note that the status will be the http status regardless of whether the anchor is good or bad, ie '200 no error' even if the anchor doesn't appear on the target page. In the case of a problem with an anchor, a warning is created on that url which can be highlighted in orange depending on your Preferences, or shown in the warnings table in the case of Integrity Pro and Scrutiny.
- Fixes the option Preferences>Views>Display labels>'Display labels for redirected URLs'
- An efficiency improvement which may help with a slowing-down problem experienced by some users and will generally make the app more efficient for medium to large sites


Scrutiny 12.6.4
- Fixes double-quotes in url (even if percent-encoded) corrupting bad links (by link) csv
- Fixes crash which happened under unlikely circumstances


Scrutiny 12.6.2
Fixes some problems relating to exported report and autosaved data:
- where report summary wouldn't contain all of the information after reloading autosaved data
- where 'all links' csv in exported report would contain only bad linksz if the 'bad links only' checkbox had been checked in the interface.
- where count of 'images without alt text' would not always appear in the summary report

- Fixes pdf documents (if being checked) were being included in some SEO tests that should only apply to html pages, such as missing title / description.
- The default threshold for the 'too many links' SEO test has been raised to 1000. This is no longer a very relevant test but may still be useful to know if a page has an excessive number of links
- Similarly, default keyword density threshold increased to 6% for more relevant results


Scrutiny 12.6.1
- Fixes a bug that could have caused spurious statuses for certain urls (caused by containing a percent symbol which isn't part of a percent-encoding, which is a bad practice anyway.)
- Fixes some urls with unlikely character combinations in the querystring or path to misleadingly display in tables as the domain only
- Some social and calendar 'add this' links are now listed but not checked. It's potentially not a good thing to request these urls to check them. They are major domains (eg Google, Outlook) and tend to be generated by plugins, and so more likely to give a false positive when tested than to actually be broken.


Scrutiny 12.6.0
- Better handling of html5 picture tag
- Preferences for Sitemap (whether to include unique image urls, audio, video, pdf) are now all switched on by default
- Fixes sorting by 'last scanned' date in archived data manager


Scrutiny 12.5.3
- In the 'by link url' table, the starting url may have shown 'appears 0 times' in the On page column if the exact url didn't appear as a link (eg if you start at mysite.com but all 'home' links point to /index.html). Technically true but inelegant. Now shows "starting url"
- Restores 'Check for updates' under Application's main menu. If enabled, an auto update check will be performed on startup and display a button in the main window. The auto update can be switched from within the manual update check window.


Scrutiny 12.5.2
- Adds Tools > Autosave Data Manager, which lists autosaved data, the sites they relate to, size, and allows you to selectively delete
- Fixes a problem that could (under fairly unlikely circumstances) lead to a page incorrectly being excluded from the sitemap for being marked 'robots noindex'
- Fixes some issues experienced when updating from version 10


Scrutiny 12.5.1
- Fixes a problem that led to the final status of certain urls (a redirect followed by an error) showing the 3xx redirect code rather than the final error code
- Fixes bug with the redirect table in the Link Inspector not showing the starting url on the first row but the first redirect url


Scrutiny 12.5.0
- Improvements to parsing srcsets

Improves structured data functionality:
- Now allows for multiple chunks of json-ld on a page
- Now reads multiple items within @graph properly
- Displays the top-level @types from json-ld in the SEO->Meta data table


Scrutiny 12.4.7
Fixed:
- Preference>Views>'treat blacklisted urls as bad links'
- appearance of headings 'outline' view in page inspector
- issue that could have caused twitter: meta tags to not show in SEO -> Meta data table

- Adds Twitter card visualiser and json-ld structured data viewer to Page Inspector window
- Other small fixes


Scrutiny 12.4.6
- Adds 'Delete configuration' to context menu
- Fixes sorting by column in 'by status' view, plus small efficiency related to building the by status view at end of scan
- Adds a couple of context help items to the scheduling tab
- Fixes an issue that could have caused image urls after an audio or video tag to be corrupted and therefore test bad, Since 12.4.2


Scrutiny 12.4.4
Fixed:
- relating to the 'on finish alert' preference
- relating to the insecure link and mixed content functionality. See settings > Finish Actions > Alert when links to http site are found, and Rules > When scanning a secure (https://) site... See the manual for proper use
- relating to the 'high keyword density' SEO test
- an issue which could sometimes cause scan to slow down and stop when using the rendering feature
- Many updates to the manual - found under the Help menu and website


Scrutiny 12.4.3
- Improvement to 'robots noindex' search, false positives may have been seen for that
- fixes a problem that prevented the contents (src) of iFrames from being followed if the starting page consists of iframes and no other links
- Some minor udpates to the context help system. Corrected link under Help for the v12 manual. Manual completely revised.


Scrutiny 12.4.2
- Adds "Save sitemap" to Finish Actions, with dialog for location and filename when you check the box. This was present in v10 but not carried to 12 because it seemed to duplicate the sitemap option in the full report. It turns out to be useful to be able to automatically save the sitemap at a known location and filename.
- Improvements to scheduling functionality, particularly for those just upgrading from v10
- dmg includes the Uninstaller. NB this is not to be used if you're upgrading to 12 from a previous version. It will remove all files relating to Scrutiny and is for use if you no longer need to use it on a computer, and is particularly aimed at the situation where there are schedules that try to run and fail because you've deleted the app. (These are best managed within Scrutiny using Tools > Schedules Overview )
- Adds support for links to audio and video files within but both markups are valid and now correctly parsed, tested and reported
- Adds 'Visit' to context (right-click) menu of website list


Scrutiny 12.4.1
- Fixes problem causing css files to not be parsed for url('') images. (These image urls should be tested and reported if 'linked files' and 'images' are switched on in Options.)
- Adds "parse PDF files" and "parse DOCX files" to Options. This functionality has long existed in Scrutiny, but the checkboxes have been missing from the new v12 interface.
- Moves 'Search site' from 'Options' to Tools menu. a/ because it's not an Option, and b/ because of the above fix reducing available space on that tab with the window at minimum height.


Scrutiny 12.4.00
- Fixes problem which caused starting urls with accented characters in the domain to stall.
Urls with special characters may have appeared encoded rather than decoded in one or two places including the Link Inspector 'appears on' table and redirect table.

Improvements to soft 404 functionality:
- certain social networking sites currently return a 'soft 404' which is a 200 code and a page that says "page not found" or similar. Detecting this requires the soft 404 feature to be switched on and configured. in some cases it can also require clientside rendering. External links to Twitter and Youtube are now automatically rendered in order to access and check page content (if soft404 is switched on)
- Some terms are added to the default value for the soft 404 terms field. This will only affect new users or those who haven't altered the default list.
- When a possible soft 404 is detected, a warning is created which explains which term was matched on the target page. This can be seen in the Link Inspector and in the Warnings table.
- Note that Instagram.com also requires authentication, otherwise a request for any url will receive the login page along with 200 status. Currently, attempting to authenticate with Instagram using Scrutiny's login window is hit and miss.
- Some pages won't show any content before the user has accepted cookies. It's possible that accessing the site using Scrutiny's Login window and accepting cookies will get around this, but otherwise this request for a user action will block Scrutiny from being able to detect a soft 404
- Adds context help to soft 404 settings in the Preferences window


Scrutiny 12.3.17
- Removes a couple of redundant items from the View menu which were confusing
- improvements to handling of basic http authentication


Scrutiny 12.3.16
- Improves sorting in Link Inspector 'Appears on' table
- Adds 'Copy URL' to the context menu for that table
- Fixes a problem preventing the 'bad links only' button from working properly in 'by page' and 'by status' views
- When Pause is pressed during scan, current connections are now stopped and returned to the check queue. Previously they were allowed to finish, which didn't cause a problem, but as the stats crept after pressing the button, it didn't look particularly 'clean'.


Scrutiny 12.3.15
- Fixes message on Spelling tab 'Spelling is disabled in settings' being displayed permanently
- Adds 'live updating' to the 'By link URL' table (and only if that tab is selected)
- it is best if the Settings or another tab is selected during the scan, as the live updating is an overhead and makes the san slower and less efficient. To help with this problem, the 'live updating' happens periodically rather than with every url. But this still isn't advised for very large sites.


Scrutiny 12.3.14
- Detects system appearance (dark/light mode) and makes the Summary either dark or light accordingly. (The white summary when system was in dark mode was jarring.) Exported version is still white.
- Significantly improved and more efficient parsing for meta http refresh. Now checks for delay in seconds within the content attribute, if small (<6s) will observe the redirect, otherwise will ignore.
- Now ignores meta http refresh found withintags
- Should make the crawl a little more efficient too, as the check for meta http refresh is made for every page parsed


Scrutiny 12.3.13
Some fixes and enhancements to the spelling dialog and table:
- fixes '1 of 15' indicator just above the context field in the spelling dialog
- fixes 'learn' button
- autosave wasn't correctly saving and reloading the spelling by word data
- Adds context menus to the 'Spelling by word' view - allows copying of word and url, visit url


Scrutiny 12.3.12
- After a long beta period and consultations, version 12 becomes the main release (skipping v11)
- v12 is a ground-up rewrite, it returns to the more open Integrity-like interface, there are some major changes, some pruning of redundant or problematic features
- Please read the release notes within the dmg before switching from 10. It contains details of the important changes
- It also brings the minimum system requirement to v10.14
- There is a price increase but existing licences for v7 upwards will work, ie no upgrade fee


Scrutiny 10.4.17
- Fix that prevents a possible (but very unlikely) crash
- Alters default setting for request header field 'Connection' from 'close' to 'keep-alive'. Examples seen where 'close' causes 'Network connection lost' status.


Scrutiny 10.4.16
- Small fix that could cause problems when trying to disallow according to robots.txt. In cases where there's a conflict (eg where allow / is followed by a disallow list) It would often seem reasonable to expect the disallow to take priority, and so Scrutiny now does that.
- Adds number of bad links (if any) to the message below the scanning progress bard


Scrutiny 10.4.15
- Adds googletagmanager.com to the internal 'do not check' list, (the current code includes an iFrame src url which can trigger analytics without javascript rendering)
- Adds the actual status of the starting url to the information box which is shown if the scan doesn't get off the ground


Scrutiny 10.4.14
- Updates to startup-update-check functionality, which may have been responsible for some strange symptoms at startup for some users
- Checbox added to Preferences to enable/disable the update check at startup


Scrutiny 10.4.13
- May fix crawl apparently being 'stuck'. Specifically reduces the number of times a recurring redirect is allowed to happen, and fixes bug which caused Scrutiny to continually retry after a url blocked by Cloudflare.


Scrutiny 10.4.12
- Fixes the Locate function which appears in the links context menus (with one instance selected). This is a powerful and often-overlooked feature.


Scrutiny 10.4.11
- Small but important fix. If a self-closing style tag found on the page (unlikely but valid) parser would ignore the rest of the page.


Scrutiny 10.4.10
- Fixes bug that would cause crawl to stall after the first page with certain combination of settings and link(s) to xml files in the page's meta data


Scrutiny 10.4.9
- Enhancement to starting with a list of links. It's been possible to make a list of urls to different domains in order to scan multiple sites in one scan / one set of results. Now the 'down but not up' rule is applied to urls in that list, so it's possible to selectively crawl sections of a single site.
- (It is also possible to do this by setting up 'whitelist' rules, but this relies on there being links on your starting url to the areas that you want to scan.)
- Note that when using the list of deep links, the trailing slash is important. A url such as peacockmedia.software/mac/scrutiny will be assumed to be a page called scrutiny and the crawl will be limited to /mac/. But a url such as peacockmedia.software/mac/scrutiny/ is assumed to be a directory and the scan will be limited to /scrutiny/
- Improvements to the parsing of image srcsets


Scrutiny 10.4.8
Fixes a couple of problems when using 'do not follow urls that do not contain' rules for whitelisting parts of a site:
- if more than one such rule is being used, they wouldn't have played together
- if term contained a trailing slash, such as '/mac/scrutiny/', a url such as peacockmedia.software/mac/scrutiny would have failed to match because of the trailing slash and a strict string match. Now this situation is taken into account and such a match works as you would reasonably expect.


Scrutiny 10.4.7
- Couple of fixes to blacklisting of directories when using orphan check / ftp


Scrutiny 10.4.6
- Adds option to generate and submit Bing Webmaster XML batch files. IndexNow is intended to allow you to quickly inform multiple search engines of changes, and for those changes to be reflected quickly in search results.
- Below the option to export an XML sitemap, you can now export 'Bing Webmaster XML'
- The existing preference to save locally/save and submit/just submit now applies to the Bing Webmaster XML as well as sitemap XML
- You will need to fill in your Bing API key in Preferences > Sitemap
- If you have more than 500 pages, then they will be sent in batches of 500 as required
- It's up to you not to exceed your daily quota (which is currently 10,000 urls per day)
- When Page analysis is selected from the Tools menu, it's pre-filled with the starting url of the current selected website (the one in focus if more than one Scrutiny window is open)


Scrutiny 10.4.5
- improvement to .docx parser
- 'handle cookies' setting is now on by default (previously, bad urls were retried and cookie handling was always on for the retry regardless of whether cookie setting was switched on in the website profile. Historic reasons for the old behaviour no longer apply.)
- For each request, the request header field Cache-Control is now set to no-cache (rather than max-age=0) which may be the better way to force a fresh version of the page
- licence key wasn't being shown in the About box, is now


Scrutiny 10.4.4
- Fixes bug that could cause inconsistent results if a scan run, and then run again without quitting the app or switching website configs
- Adds itms: and itms-apps: (direct links to app store app) to the types of link that Scrutiny doesn't attempt to check
- Minor tweaks to the server request fields that Scrutiny sends with every request
- Important update for users of 10.4.1 and 10.4.2. Fixes issue with the link inspector, not visiting / highlighting / locating the selected page.


Scrutiny 10.4.3
- Change log not available for this version


Scrutiny 10.4.2
- if image url is empty, alt text warning says "empty" for image url rather than being blank
- Fixes issue where multiple sections would prevent proper parsing of some of the information in the head and could lead to incorrect warnings of missing title or missing description
- NB Integrity and Scrutiny support pages with multiple head sections (with warning), no head tags, no head or body tags
- Minor correction with one of the warnings - p within heading - the warning said that p can only contain inline content (which is true) but in this case it should have said heading tags can only contain inline content.


Scrutiny 10.4.1
- Fixes problem - multiple instances of the same page may have appeared in the 'Appears on' list in the link inspector, if the anchor feature was turned on
- Adds ability to see context for warnings. Sometimes it can be difficult to find the problem in a page, even given a line number. A double-click on a warning in the warnings table will open an inspector which will usually show a clip from the page source in the area of the problem.


Scrutiny 10.4.0
- Adds Headings table to SEO results (headings are still available in the main view)
- Minor interface changes, for user-friendliness - in Links results, 'By Link' is now 'Link URLs' and 'Flat view' is 'All Links'
- Very minor improvements to content-type / file type detection
- A few small fixes to the default values of the SEO results tables
- Fixes formatting of data in SEO headings columns (were unnecessarily padded with tabs)


Scrutiny 10.3.17
- Improvements to robots.txt detection, parsing and applying
- includes bug fix, 'disallow' terms were being incorrectly applied to externally-hosted resources
- includes bug fix, disallow was working on the whole path, rather than the root, so if /reports/ in disallow list, would apply to domain.com/xxx/reports
- Improvement to 'Always trust invalid server certificate'
- Scrutiny now always sends the Accept-Language header with the default value of '*' for all requests
- Adds field to settings, Advanced tab, for user to add a custom value for the Accept-Language header, in order to control which language is selected, for websites which use this header to select which localisation of the website is served
- Fixes an exception which could have happened when selecting a website in the sites list


Scrutiny 10.3.16
- Adds warnings "more than one title tag found" and "more than one opening html tag found"
- Improves the html validation where 'render page (run js) is switched on (not recommended unless absolutely necessary). Previously there would have been some false positives (eg 'no doctype' when a doctype is present), some warnings would have been masked, and line numbers would have been inaccurate, because the html would have been parsed after the page render. Now an additional pass for warnings is made over the pre-rendered source.


Scrutiny 10.3.15
- Fixes possible false positive for the warning "...contains an = in an unquoted value..."
- Adds warning where more than one meta description is found in the head


Scrutiny 10.3.14
Some fixes to meta data url collection:
- Improvement to robots.txt check. Now page status of robots.txt (ie its existence) is checked before attempting to request it. Previously Scrutiny might parse a custom 404 page if robots.txt doesn't exist. This was unlikely to cause any issues as allow/disallow wouldn't have been found in the document but Scrutiny might have appeared to hang temporarily at the start of the scan if robots.txt didn't exist and the custom 404 page was long.
- Fix: Now when a config is deleted, the schedule is correctly deleted from the system. Previously the schedule would remain 'live' on the system. (The 'Schedules overview' tool would allow you to check these and delete any 'left over' ones).
- improvement: if user selected 'none' for schedule, but didn't press commit, the schedule would remain in place on the system, even though the website config would show 'none' for schedule.


Scrutiny 10.3.13
Some fixes to meta data url collection:
- Collection of urls within meta tags was not being controlled by the correct checkbox
- Fixes a bug which caused issues with reporting of certain meta tag urls


Scrutiny 10.3.12
- Very small improvement to robots.txt pattern matching
- The general release is now a UB build and runs natively (faster, more efficiently) on Apple Silicon Macs


Scrutiny 10.3.11
- Fix/improvement to orphan check - if a password is not required for sftp remote directory listing, for example if shell is configured to use ssh keys, the remote check will no longer stop if no password is provided, but continue and not expect or send a password.


Scrutiny 10.3.10
- Search box above Link results > flat view and 'By status' views now searches link text as well as urls
- Adds 'port' field to orphan check ftp panel
- Other improvements to orphan check functionality


Scrutiny 10.3.9
- Important fix for all users: fixes issue where crawl would stall if the starting url contains a meta refresh without a url, ie just a refresh which isn't a redirection to another url. This might have also prevented pages within the site from being crawled properly if they contained such a meta refresh, but this is likely to have gone unnoticed.


Scrutiny 10.3.8
- Shows 'are you sure' alert for the breadcrumb 'Scan Again' button. It's easy to hit this when wanting to do something else such as go back to check settings.
- The quick single-click re-scan action is useful though and the warning introduces another click, so once the user is familiar with what the re-scan does, the warning can be switched off in Preferences
- minor cosmetic improvements


Scrutiny 10.3.7
- Fixes false positives reported where an srcset has a hanging comma (failed by the w3c validator as "empty image-candidate string").
- The above situation is now reported in the warnings table
- Adds 'Copy Word' into Spelling table's context menu


Scrutiny 10.3.6
- Full report shows number of bad link instances as well as unique urls. Previously it quoted just the number of unique link urls, which might have been quite different to the number of rows in the bad_links.csv, led to confusion.
- Some improvements to the thumbnail functionality (list of websites). Sometimes thumbnails might not appear and in odd cases, Scrutiny would appear to hang when websites were selected.
- The above fix forces 10.13 as the minimum system requirement. 10.12 users should use Scrutiny 10.3.5


Scrutiny 10.3.5
Some improvements relating to images:
- Image urls within source srcset=.... were being collected and checked even when 'check images' was switched off.
- As a side-effect of the above fix, html5 audio and video source urls are not collected when 'check images' is off and this is probably as expected.
- For the same reason, tags aren't searched if 'check images' is off
- Images with querystring after the file extension were not being recognised as images under certain circumstances (eg if they had a bad status, or if no mime type is included in the response header)

Some improvements to checking list of links / local files:
- Enables files stored in certain locations outside the user directory
- Fixes problem with case sensitivity check when a file location involves a symlink

- Handles certain trackback links, no longer reports them as bad links


Scrutiny 10.3.3
- Now offers options under the 'Log in' button. Version 10.3.1 updated the webview used in the Log in window. This helped the functionality to work with some sites and broke the functionality for others. Version 10.3.3 offers a choice - try the legacy version first, if that doesn't work, try the other.


Scrutiny 10.3.2
- The Warnings table and the spelling table weren't clearing properly when the user switched to a different website and viewed autosaved data
- Fixes problem where under unlikely circumstances, spurious character(s) find their way into an image or link url, causing bad link to be reported.
- Important fix - link urls within html area map were incorrectly being marked as images, which could prevent the page from appearing in the sitemap if the image map is the first occurrence of that url that Scrutiny discovered.


Scrutiny 10.3.1
- Fix and enhancement to existing option 'trust invalid server certificate' (internal domain / subdomains only). Allows scanning of site while certificate is out of date or not yet installed properly. Links to external sites with invalid cert will still be correctly reported as bad links
- Adds option to override 'down but not up' rule, which usually limits Scrutiny to the 'directory' that you start in. This allows you to have a deep url as your starting url (eg for authentication reasons) when you actually want to scan the whole domain.


Scrutiny 10.2.1
- Improves handling of linked files without file extension (eg may have "?format=json" in the url) and where there is a 'type' attribute in the html meta tag. In these cases, the type attribute takes priority over the server 'content-type' header field, which may well give a different content type because of the lack of file extension.
- Where the 'type' attribute in the html meta tag and the server 'content-type' header field don't agree, the html type attribute takes priority.
- "Type mismatch: Type attribute in html is xxx/yyy, content-type given in server response is aaa/bbb" added to list of possible warnings.
- Now does not try to parse json files found in meta data as if they're html (but does check them as it did before)
- Where there are blacklist / whitelist rules, these are now printed at the top of the exported summary report, so that the scope of the scan is clear.
- Other small enhancements
- Fixes problem with 'flag blacklisted' option. Blacklisted url (ie 'do not check links containing...') were not being flagged properly. The option is now renamed "Treat blacklisted urls as bad links" and those urls now show up when filtering 'bad links only', with that option switched on.


Scrutiny 10.2.0
- Adds warning: 'link url has mismatched or missing end quotes'
- fixes links flat view not reloading when search box cleared
- fixes all-links.csv being blank when generated automatically at the end of the scan, and when Preferences set to flat rather than 'by link'.
- fixes garbage filename when automatically generating full report on finish. tbh the intended unique filename isn't much better


Scrutiny 10.1.0
- Adds options in Warnings table context menu to "Hide warnings like this" either temporarily or until next scan. (or in Scrutiny's case until data next reloaded)
- Improves parsing of robots.txt, 'allow' now correctly overrides 'disallow' with pattern matching * and $
- Fixes bug which prevented detection of source data-srcset attribute since 10.0


Scrutiny 10.0.5
- A number of minor improvements and fixes to the html validation / reporting
- Fixes 'export warnings as html' which was exporting the wrong table


Scrutiny 10.0.4
- Fixes a problem with automated generation of the new Warnings table as part of the full report


Scrutiny 10.0.3
- Adds 'Badly nestedand ', 'Form element can't be nested' and 'unclosed form element' to list of possible html validation warnings
- version 10 now considered stable and replaces 9.14.3 as the full main release


Scrutiny 9.14.3
- Finds image url in , when either lazyload or 'look in meta tags' is switched on
- As a policy, now reports but doesn't test certain special urls such as xmlrpc.php and about:blank. They won't appear in Warnings, but will be listed as "not checked" so that the webmaster can see that they exist on the page. Checking these urls isn't helpful (some will always return a good status, some will always return a bad one) but being aware of their presence may be helpful. They may exist for perfectly legitimate reasons such as part of a lazyload system or pingback system.


Scrutiny 9.14.2
- Improvements to spell checking functionality. More aggressive filtering of filenames and urls which may legitimately appear in the page text if they're in link text.

Improvements to warnings functionality:
- Improves wording and info within warnings table.
- Warns about certain specific elements that shouldn't be within link (iframe, form, embed, source etc)
- Fixes a duplication issue


Scrutiny 9.14.1
- Updates the selectable user-agent strings and adds more (in particular, Edge and some more mobile browsers)
- Fixes problem where spell-checker incorrectly attempts to spell-check an m4r file (if the server doesn't return a mime type in its header fields) and puts garbage in the spell check results
- Small fix for new warnings functionality. The problem was causing some warnings not to be listed


Scrutiny 9.14
- After progressing past the 'Scanning' item in the breadcrumb trail, 'Scanning' no long disappears but alters to read 'Scan again' and acts as a shortcut to re-scan the current site.
- Improvements in the saving/reloading of data, should be a tiny bit faster
- Fixes a 'mixed content' false positive where 'check images' is off and a link wraps an image with alt text and the link goes to an external http:// url.

Improves warnings reporting:
- Adds a 'Warnings' table. Rather than having to find warnings via the links results, by opening the link's inspector for each orange link, Warnings now has its own entry in the Results selection. This shows a sortable and exportable table listing urls/warnings.
- Tidies up the Results selection screen.


Scrutiny 9.13.3
- Now recognises and warns about unterminated or nested link tags, which are illegal in html. Previously if this problem existed on a page, it could cause some spurious minor symptoms such as a link url being incorrectly reported as an image, or incorrect warning about mixed content on the page.
- Updates the Paddle licensing framework to the latest version which is Big Sur and M1 compatible


Scrutiny 9.13.2
- Fix: When sitemap was exported to csv, double-quotes in data (eg heading) weren't being escaped properly and would break the csv
- Adds preference for quotes in data when anything is exported to csv. There are at least a couple of ways to do this and neither works universally. Scrutiny's default way (replacing the double-quotes with single) isn't ideal but it should work whatever is used to open the csv. Integrity offers the choice of these three methods.


Scrutiny 9.13.1
Fixes and enhancements:
- Links results, filter button, the option "http: links" is now correctly shown or hidden, and works if it is visible
- Results selection - sitemap - the availability message was showing an incorrect string and was confusing
- When using search box or filter button above the link results, operation is a little quicker


Scrutiny 9.13.0
- Adds 'warnings' column to 'by link' and 'flat' links views, which can be included when either of those views are exported as csv.
- Fixes problem where sitemap > show excluded > context menu > Copy / Visit sometimes used the wrong url.
- Adds 'broken anchor links' to filter button above links tables.
- Some fixes to anchor functionality


Scrutiny 9.12.2
- When starting url returned a page with no links, crawl was stalling. Scrutiny was returning a status for the starting url but not checking images or linked files. The page wouldn't be listed in the SEO table and it wasn't possible to generate a sitemap.
- There may be a good reason for the starting page to have no links (under construction or business card).
- The 'unexpectedly few results' warning and offer of diagnostic window / support still appears (which is appropriate if the crawl only finds a single page and few or no links) but if this is batted away, the images and linked files will now have been checked, and it will be possible to generate an xml sitemap or view / export the SEO information for that page.
- Now searches for window.location urls in the page's head, includes those urls in the crawl if they exist. (This can catch the screen.width redirection to a mobile site. Blacklist the mobile url if you don't want this to happen or to scan the sites separately).
- In recent versions, with larger scans, Scrutiny may have been very slow to respond or even appeared to hang, with certain actions such as reloading data or switching to 'bad links only'. This version should be much better.


Scrutiny 9.12.1
- Fixes possible problem if at first launch, user cancels the offered site creation sheet and then tries to open a list of links
- Fixes problem with committing a schedule for the first time, if user's LaunchAgents folder doesn't already exist
- Package (.dmg) now includes an uninstaller


Scrutiny 9.12.0
Improvements concerning robots.txt and warnings:
- small fix with parsing the robots.txt file
- always parses robots.txt if present and for each url, notes whether the url is allowed or disallowed. If disallowed, a note is made in the url's warnings (warnings are highlighted in orange in the links tables, the actual warnings can be seen in the link inspector)
- whether a link is still checked and followed or not is down to the 'limit crawl based on robots.txt' setting. Whether disallowed pages are included in the sitemap is decided by Preferences>Sitemap>Observe robots.txt
- adds 'Disallowed by robots.txt' choice in filter button in SEO
- removes some unnecessary operations so that switching between tabs in the link results is quicker
- fixes problem with 'warnings' filter option in links 'by status' view


Scrutiny 9.11.0
- Some fixes to the Monitoring functionality including
- Fixes possible crash when using the Test button
- Fixes bug preventing log file directory from being selected


Scrutiny 9.10.0
- Correctly ignores sms: links
- Fixes possible crash if empty url() encountered in inline style or style sheet
- For users of 10.15 upwards, implements a new 'ignore local and remote cache' policy which may fix caching issues on Catalina upwards
- advanced feature - able to send form data with initial request, without authentication checkbox being switched on or username/password filled in
- advanced feature - authentication login window now correctly uses same user-agent string set in preferences, now offers option for js on / off in login window (doesn't necessarily have to match 'run javascript' setting for scan)


Scrutiny 9.9.1
- Improvements to image discovery; now finds and processes image urls within inline styles (if 'check images' is switched on)
- Improvements to engine. removes possibly duplication of link occurrences under certain circumstances. A few other small changes. The results from this new version may be slightly different but should be more accurate.
- Fixes image urls found within style sheet being reported even if 'check images' was turned off


Scrutiny 9.9.0
- Adds support for checking for links within Word (.docx) documents
- A new checkbox in the settings: 'check links within docx files' is now alongside the existing 'check links within pdf files'
- When testing linked files, now automatically ignores the wordpress rest api files which return an unauthorised status when tested, leading to unnecessary concern.

Adds support for checking all the links within a *local* pdf or docx document:
- If File > Open is used and pdf or docx chosen, the file:// url will be passed to the 'new setttings' dialog (alternatively, use File > New and drag the file into the 'starting url' field, clearing the field and putting that field in focus first, or type the file:// url)
- If a new config is initiated using the above methods, and the starting url is a local pdf or docx, some necessary settings will be set ('this page only', and 'check links within pdf/docx')
(Note, Scrutiny already handled a local list of links in txt or csv format, using the above method to add it.)


Scrutiny 9.8.4
- Adds support for charset=GBK, charset=koi8-r, charset=euc-kr and some other Latin and non-Latin character encodings


Scrutiny 9.8.3
- Some improvements around starting your scan with a list of links. In particular, automatically differentiating between txt and csv file types (this fixes a bug where a url containing a comma within a txt file would be incorrectly split)


Scrutiny 9.8.2
- Fixes a couple of situations that could result in incorrectly-constructed link urls and therefore false positives
- Better handling of escaped forward slashes in urls


Scrutiny 9.8.1
- Very small fix to prevent some false positives arising from SVG masks in style sheets


Scrutiny 9.8.0
- A number of fixes and enhancements related to the padlock in browser address bars. Different browsers have different criteria for displaying the padlock for a secure site

The insecure content report will now include:
- insecure urls found in certain meta tags, such as open graph or Twitter cards
- insecure images, whether hosted externally or not
- insecure form action urls, even if the 'check form action' is switched off

Changes:
- Adds option to search certain meta tags for urls. Those urls will be link-checked and also checked to see whether they count as insecure / mixed content. The meta tags in question are meta name=, meta itemprop= and meta property=. This includes social media tags such as meta property=og:image
- Now correctly checks externally-hosted images to see whether they count as insecure / mixed content.
- Fixes some image urls that appear on css not being reported when in single page mode
- Tidies up image alt text appearing as "[alt:][alt:]" (ie the alt text indicator duplicated)
- Form action urls are now always collected and reported so that they can be checked to see whether they count as insecure / mixed content. They will be link-checked or not depending on the 'Check form actions' option.


Scrutiny 9.7.2
- Change log not available for this version


Scrutiny 9.7.1
- Fixes Metadata, Headings etc not being visible in Robotize in dark mode
- Efficiency when generating sitemap.xml
- Fixes 'Insecure content' option in SEO filter
- Adds the insecure pages / mixed content csv (if there are any, and if 'individual SEO tests of concern' is checked in the site's options) to the list of CSV files exported with the full report


Scrutiny 9.7.0
- Adds 'Manage custom dictionary' button above spell-check table. This tool provides an easy way to see your list of 'learned' words (to check that you haven't 'learned' any misspelled words)and 'unlearn' any that you learned by mistake


Scrutiny 9.6.9
- Fixes spurious javascript being incorrectly reported as a link in certain situations
- Fixes relative links being constructed incorrectly where anchor link feature was switched on and page being parsed is a directory url
- In the warnings tab of the link inspector, if there was a warning about a redirection, it may have contained the final url twice instead of the original url and final url


Scrutiny 9.6.8
Enhancements to scheduling:
- Adds 'Daily' option
- Adds 'Prevent tab proliferation' preference which is on by default. When a schedule starts, any existing tabs or windows with that same website config selected will be closed.


Scrutiny 9.6.7
- Important fix for users using the scheduling feature. Fixes a bug in the last few versions that could change some settings back to defaults when the schedule runs


Scrutiny 9.6.6
- Correctly makes sure that pages are excluded from the sitemap if the url didn't return a good status
- Adds an 'export / import all websites' for people who are starting afresh with another computer or making a clean install and not migrating their user account
- Fixes possible crash during scan
- Other small fixes and enhancements


Scrutiny 9.6.5
- Important release for all users. Eliminates some spurious 'bad links' by correctly ignoring which often doesn't contain a full resource url and can return a bad or unexpected status when tested.


Scrutiny 9.6.4
- Further changes to XML sitemap generation routine. Earlier efficiency improvements (9.6.1) were at the expense of memory use, caused some problems generating sitemaps for very large sites.


Scrutiny 9.6.3
- Fixes problem with the 'send email' finish action for users on 10.14 or 10.15. When that feature is used, users should now see (just once) a dialog asking for permission for Scrutiny to control the Mail app. After that, the necessary permission can be controlled in System Preferences > Security & Privacy > Privacy > Automation (checkbox 'Mail' below Scrutiny 9).
- Small improvements to the 'web access' for the full report. File size is displayed for each file, and for larger files which the displaycsv.php file won't handle, the 'display' option is hidden leaving only the option to download.
- Minimum system requirement increased to MacOS 10.10 (Yosemite). Users of 10.9 should use version 9.6.2
- Some changes to licensing functionality; a fairly major update to the Paddle licensing framework and Integrity's program flow at startup, but should be invisible to the user.


Scrutiny 9.6.2
- Fixes bug which could prevent the xml sitemap save dialog from appearing for new users


Scrutiny 9.6.1
Improvements to exporting functionality:
- efficiencies (memory / speed) which will benefit users with larger sites
- the odd bug fix which will cure a possible hang when exporting, particularly the 'images without alt text' table


Scrutiny 9.6.0
Improves the sitemap visualisation functionality:
- redesigned 'bubble tree' theme which now looks much more professional
- adds the concept of 'link juice' - nodes and connections can be shaded or coloured according to that
- adds some buttons to Preferences > Sitemap which offer choices of colouring / shading for nodes and connections
- fixes issue with 'list' theme, causing labels to disappear
- many other small improvements


Scrutiny 9.5.8
- Fixes a bug with the sitemap visualisation / .dot export, which would randomly work or not work if you hadn't just run a fresh scan but were viewing saved data
- Some real improvements to the visualisation functionality to follow shortly


Scrutiny 9.5.7
- Adds sortable columns to links views and link inspector for rel = sponsored and rel = ugc. These columns are hidden by default but can be shown using the 'columns' selector above each of those views.
- Fixes two specific fields of a link instance (target and hreflang) being displayed incorrectly after saving and reloading data


Scrutiny 9.5.6
- Improvements to the styling of the summary reports (html / pdf)
- Improvements to the (previously present but undocumented feature) 'include web access'
- 'include web access' feature now documented and supported


Scrutiny 9.5.5
- With the new 'check anchors' switched on, urls with #anchor fragments were sometimes incorrectly appearing in the Sitemap and SEO tables
- Fixes urls being duplicated in Sitemap table under certain circumstances and settings


Scrutiny 9.5.4
- Fixes a problem with the sitemap visualiser


Scrutiny 9.5.2
- Small but important fix, all-links.csv wasn't properly escaping quotes in link text


Scrutiny 9.5.1
Adds ability to test anchors. You can switch the option on using a new checkbox on Integrity's first tab:
- this will cause urls like /index.html#top and /index.html#bottom to be reported as separate links (resulting in more data) and tested separately. (more cpu and time for crawl)
- If a link url has a #fragment then Integrity will report the server response code as before (coloured red if status is bad). The anchor has no bearing on this. However, if the status is good, then Integrity makes a further check to see whether a name or id can be found on the target page matching the link fragment. If not, this is added to the link's warnings, and the link will be marked orange
- You can view the details of the warning in the Link Inspector
- Note that the anchor check is case-sensitive. Officially anchors are case-sensitive. Some browsers may treat anchors as case-insensitive, but this doesn't mean that all browsers will and it doesn't mean that it's right.
- Note that you can't 'ignore querystrings' and also test the anchors, since the anchor fragment comes after the querystring.
- The filter button contains a new item 'Warnings' which shows only links with warnings, this will include links with anchors where the anchor (a name or an id) can't be found on the page
- As far as the filter button is concerned, 'Warnings' doesn't include redirects, even though they're both coloured orange in the interface and the Link Inspector Warnings tab does include warnings. The Filter button allows you to separate them
- The filter button option 'Redirects' will still show redirects, even if you've chosen 'do not report redirects' in Preferences.
- Typing a '#' into the search field will show links which contain a #fragment.
- Warnings (which have been reported in the link inspector since v9.0) now cause the link to be coloured orange in the views. As some people like to work towards a clean set of results and may not consider the warnings important, the colouring of warnings can be switched off in Preferences > Links > Warnings. The 'Warnings' filter will still work when colouring of warnings is switched off in Preferences.
- Adds option for all-links.csv (optionally saved automatically at the end of the scan) to be based on the links flat view rather than the collapsed 'by link' view. Using this option may result in a very large file for larger sites but it is a more comprehensive csv than the default option.

Fixes:
- garbage urls caused by a url containing a comma, or a data: image within an srcset
- garbage urls caused by certain javascript code
- fixes bug that's unlikely to have been noticed. If a url redirects and the redirect url has a # fragment, traditionally the rule is that those fragments are just trimmed. But they weren't being trimmed for redirect urls. That is now fixed, but of course the new preference to not ignore anchors is respected
- Fixes warnings not being saved / reloaded after application is closed, reopened and 'show data' button used
- Fixes insecure warnings not visible in table if user clicks 'no' when prompted to view insecure content at the end of the scan but later


Scrutiny 9.4.4
- Fixes bug that could cause garbage image urls to be reported if image checking is on and a srcset attribute contains a url containing a comma (unsafe but not illegal) or data: image


Scrutiny 9.4.3
- Fixes bug that could cause scan to stall at the starting url if the starting url redirects and if page rendering is switched on

'Detailed analysis of starting url' window:
- Fixes bug causing diagnostics window to not show if it has been displayed once already and closed by user
- Improves reporting of response fields, now shows each set of response fields when a url is redirected, rather than just the final one


Scrutiny 9.4.2
- Small change to the way the '