Анализ сайта learn.saylor.org
Основное Готовность: 70%
Домен
learn.saylor.org
Состояние доменного имени
?
Проверяем корректность доменного имени и наличие технических проблем на уровне домена.
Используйте для продвижения только домен второго уровня.
Длина домена велика. Но если вы продвигаете запрос, входящий в название домена, то это хорошо.
Ответ сервера
200 Успешный ответ
HTTP-код ответа и цепочка редиректов
?
Код 200 — страница доступна. Коды 3xx — редиректы (цепочки замедляют загрузку и размывают ссылочный вес). Коды 4xx/5xx — ошибки, поисковик не сможет проиндексировать страницу.
Сервер настроен корректно.
Цепочка редиректов:
http://learn.saylor.org
301 MovedPermanently
https://learn.saylor.org/
200 OK
Безопасность
Сайт безопасен
Использование HTTPS и SSL-сертификат
?
HTTPS — обязательный стандарт. Google и Яндекс отдают предпочтение защищённым сайтам. Отсутствие SSL или просроченный сертификат ведут к предупреждениям в браузере и снижению позиций.
На сайте работает защищенный протокол ssl и сайт открывается по https.
Ssl-сертификат действителен до 03.09.2026 2:59:59.
Включён HSTS (Strict-Transport-Security) — защита от подмены на http.
HTTP автоматически перенаправляется на HTTPS.
Поздравляем! Сайт не содержится в реестре РКН.
Кодировка
utf-8
Кодировка символов страницы
?
Стандарт — UTF-8. Неправильная кодировка вызывает нечитаемые символы и мешает поисковику корректно распознать текст страницы.
Указана кодировка на странице utf-8.
Язык
en
Атрибут lang в HTML-теге
?
Атрибут lang (<html lang="ru">) сообщает поисковикам и браузерам, на каком языке написана страница. Помогает при ранжировании в региональном поиске.
Язык документа указан явно: en.
Скорость загрузки
~1,43сек
Время отклика сервера (TTFB)
?
Time To First Byte — время до получения первого байта от сервера. Норма до 200 мс. Медленный отклик ухудшает пользовательский опыт и ранжирование: Яндекс и Google учитывают скорость страниц.
Скорость загрузки сайта 1,43сек превышает 1 секунду. Желательно улучшить работу сайта!
Объем документа
118Кб
Размер HTML-кода страницы
?
Слишком большой HTML замедляет парсинг браузером и сканирование поисковым роботом. Рекомендуется не более 200 Кб.
Объем html-документа 118Кб оптимален.
Структура html-документа корректна.
Ресурсы
Ресурсы: 18
Внешние ресурсы страницы (CSS, JS, изображения)
?
Количество и тип подключённых ресурсов влияют на скорость загрузки. Большое число запросов увеличивает время рендеринга страницы.
Кол-во файлов ресурсов 18 много для одной страницы. Приемлемо до 10. Проведите оптимизацию файлов ресурсов!
Показать полный список ресурсов
| Тип | Название | Значение |
|---|---|---|
| stylesheet | text/css | https://learn.saylor.org/theme/yui_combo.php?rollup/3.18.1/yui-moodlesimple-min.css |
| stylesheet | text/css | https://learn.saylor.org/theme/styles.php/catawesome/1787165630_1787102127/all |
| stylesheet | https://fonts.googleapis.com/css2?family=Comfortaa:wght@400;700&family=Inter:ital,wght@0,400;0,500;0,600;0,700;1,400&family=Open+Sans:ital,wght@0,400;0,600;1,400&family=Raleway:wght@400;500;600;700&display=swap | |
| js | https://www.googletagmanager.com/gtag/js?id=AW-979422157 | |
| js | https://cdnjs.cloudflare.com/ajax/libs/prettify/r298/prettify.min.js | |
| js | https://cdnjs.cloudflare.com/ajax/libs/prettify/r298/lang-css.min.js | |
| js | https://learn.saylor.org/lib/javascript.php/1787165630/lib/polyfills/polyfill.js | |
| js | https://learn.saylor.org/theme/yui_combo.php?rollup/3.18.1/yui-moodlesimple-min.js | |
| js | https://learn.saylor.org/theme/jquery.php/core/jquery-3.7.1.min.js | |
| js | https://learn.saylor.org/lib/javascript.php/1787165630/lib/javascript-static.js | |
| js | https://learn.saylor.org/lib/editor/atto/plugins/htmlbootstrapeditor/content.js | |
| js | https://static.zdassets.com/ekr/snippet.js?key=fc5f608d-148b-468e-a93e-1b651b72c26a | |
| js | https://learn.saylor.org/lib/javascript.php/1787165630/lib/requirejs/require.min.js | |
| js | https://cdn.jsdelivr.net/npm/mathjax@2.7.9/MathJax.js?delayStartupUntil=configured | |
| js | https://learn.saylor.org/lib/javascript.php/1787165630/theme/catawesome/javascript/theme.js | |
| js | https://learn.saylor.org/theme/javascript.php/catawesome/1787165630/footer | |
| js | https://learn.saylor.org/lib/javascript.php/1787165630/admin/tool/htmlbootstrapeditor/content.js | |
| js | https://learn.saylor.org/lib/javascript.php/1787165630/admin/tool/htmlbootstrapeditor/editor.js |
Серверные заголовки
Кол-во: 15
HTTP-заголовки ответа сервера
?
Заголовки сервера передают браузеру и поисковику служебную информацию: кеширование, безопасность (CSP, HSTS), сжатие (gzip). Правильная настройка ускоряет загрузку и повышает защищённость.
Найдены серверные заголовки 15шт. Подробнее про серверные заголовки.
Показать полный список серверных заголовков
| Ключ | Значение |
|---|---|
| Date | Fri, 21 Aug 2026 20:13:46 GMT |
| Vary | Accept-Encoding |
| Set-Cookie | MoodleSessionsaylor=0203b0896b815c2aa36e3ad2ae5e9377; path=/; secure; HttpOnly; SameSite=Lax |
| content-script-type | text/javascript |
| content-style-type | text/css |
| X-UA-Compatible | IE=edge |
| Cache-Control | no-store, no-transform, must-revalidate, no-cache |
| Pragma | no-cache |
| Accept-Ranges | none |
| Strict-Transport-Security | max-age=31536000; includeSubDomains |
| X-Content-Type-Options | nosniff |
| X-XSS-Protection | 1; mode=block |
| x-trace | 3143e53656d5->amazon_10_31_148_208 |
| Age | 0 |
| X-Cache | MISS |
CMS
Система управления сайтом (движок)
?
CMS — это движок, на котором работает сайт (WordPress, 1C-Bitrix, Tilda и др.). Знание CMS помогает понять возможности SEO-оптимизации и подобрать подходящие инструменты. «Не определена» — вероятно, самописный сайт или нестандартная сборка.
Сайт работает на CMS CS-Cart.
Веб-сервер
Не определён
Программное обеспечение сервера
?
Веб-сервер — это ПО, которое отдаёт страницы посетителям (nginx, Apache, IIS, LiteSpeed и др.). Определяется по серверным заголовкам ответа (Server, X-Powered-By и т.п.). «Не определён» — сервер намеренно скрывает эти заголовки, это нормальная практика безопасности.
Веб-сервер не определён — заголовок Server скрыт. Это не ошибка: часто так настраивают из соображений безопасности.
Мета-теги Готовность: 34%
Title
Home | Saylor University
Заголовок страницы в браузере и поисковой выдаче
?
Title — главный SEO-заголовок страницы. Влияет на CTR в поиске и ранжирование. Оптимальная длина: 50–70 символов. Ключевые слова — ближе к началу.
Необходимо увеличить число символов в title (текущее значение мало: 24, минимум: 25, оптимально: от 40 до 45)
Дублей словоформ в title не найдено.
Description
Build new skills or work towards a degree at your own pace with free Saylor University college courses.
Описание страницы в поисковой выдаче (сниппет)
?
Meta Description — текст под заголовком в выдаче. Напрямую на позиции не влияет, но влияет на CTR. Оптимальная длина: 120–160 символов.
Необходимо увеличить число символов в description (текущее значение: 103, оптимально: от 120 до 130)
Keywords
moodle, Home | Saylor University
Список ключевых слов страницы (устаревший тег)
?
Meta Keywords не учитывается Яндексом и Google для ранжирования с 2009–2012 годов. Заполнение не обязательно, но не вредит. Конкурент может использовать содержимое для анализа.
Keywords установлены.
Канонический Url
Указывает поисковику основную версию страницы
?
Canonical (rel=canonical) предотвращает проблему дублей страниц. Должен точно совпадать с URL проверяемой страницы. Неправильный canonical может передать ссылочный вес на другую страницу.
Рекомендуем прописать канонический Url.
Robots
Ошибок нет
Директивы для поисковых роботов на уровне страницы
?
Meta Robots управляет индексацией конкретной страницы: index/noindex — индексировать ли, follow/nofollow — следовать ли по ссылкам. Noindex полностью исключает страницу из поиска.
Meta-тег robots не указан. Страница свободна для индексации.
Адаптивность
width=device-width, initial-scale=1.0
Настройка масштабирования на мобильных устройствах
?
Тег viewport (<meta name="viewport">) сообщает браузеру, как масштабировать страницу на мобильных. Стандарт: width=device-width, initial-scale=1. Отсутствие — признак отсутствия мобильной версии.
Meta-тег viewport со значением-константой width=device-width задаёт ширину страницы в соответствии с размером экрана.
Meta-тег viewport со значением initial-scale=1.0 определяет масштаб 1:1, т.е. «не масштабировать».
Разметка OpenGraph
Не найдено
Мета-теги для красивых превью в соцсетях
?
OpenGraph (og:title, og:description, og:image) управляет тем, как страница выглядит при репосте в социальных сетях и мессенджерах. Отсутствие OG-тегов — невзрачный превью при шеринге.
Разметка OpenGraph не задана. Страница не оптимизирована под социальные сети. Мета-теги с разметкой Og помогают социальным роботам лучше структурировать Ваш сайт.
Все мета-теги
Кол-во: 4
Полный список мета-тегов страницы
?
Таблица всех meta-тегов, включая нестандартные. Позволяет найти опечатки, дубли и лишние теги.
Найдены мета-теги 4шт. Мета-теги не видимы для человека и предназначены для обмена информацией между веб-страницей и поисковыми системами, браузерами и другими веб-службами. С ними роботы 🤖 и устройства ведут себя более ожидаемо.
Показать полный список мета-тегов
| Тип | Название | Значение |
|---|---|---|
| name | apple-itunes-app | app-id=1481507148, app-argument=https://learn.saylor.org/ |
| name | keywords | moodle, Home | Saylor University |
| name | description | Build new skills or work towards a degree at your own pace with free Saylor University college courses. |
| name | viewport | width=device-width, initial-scale=1.0 |
Оптимизация Готовность: 82%
Структура
Ошибок нет
Семантические HTML-элементы страницы
?
Проверяет наличие основных структурных элементов: nav, header, footer, main. Корректная семантическая структура помогает поисковику понять архитектуру страницы.
Структура документа корректна (теги <html> и <body> присутствуют в единственном экземпляре).
Контент
Есть ошибки
Объём и качество текстового содержимого
?
Анализирует объём полезного текста на странице. Слишком мало — страница может считаться малополезной. Слишком много — ухудшается читаемость и восприятие.
Абзацев с текстом 3 слишком мало. Добавьте больше абзацев с текстом (тег <p>)!
Кол-во слов 368 слишком мало. Добавьте больше текста (минимум 400 слов)!
Слова из title 3 встречаются в тексте достаточно.
Среднее число слов в абзаце 40 достаточно.
Кол-во знаков контента 2452 на странице оптимально.
Заголовки
Ошибок нет
Иерархия заголовков H1–H6
?
H1 должен быть один и содержать ключевой запрос. H2–H6 описывают подразделы. Пропуск уровней (H1 → H3) и несколько H1 — типичные ошибки, снижающие понятность страницы для поисковика.
На странице присутствуют заголовки <h1> 1. Это прекрасно.
На странице присутствуют заголовки <h2> 1. Это хорошо.
На странице присутствуют заголовки <h3> 1.
Тошнота
4,12
Насколько одно слово доминирует в тексте
?
Классическая тошнота = √(частота самого повторяющегося слова). Норма до 7–8: текст воспринимается естественно. Выше — поисковик может счесть страницу переспамленной.
Тошнота превышает норму 3. Измените текст страницы!
Академич. тошнота
11,96%
Насколько текст перенасыщен ключевыми словами
?
Академическая тошнота = (частота слова / общее количество слов) × 100%. Показывает долю конкретного слова в тексте. Норма 5–15%.
Академическая тошнота страницы в пределах нормы.
Семантическое ядро
20
Наиболее часто встречающиеся слова на странице
?
Топ слов по частоте использования. Показывает, какие слова доминируют в тексте с точки зрения поисковика.
Контент страницы содержит осмысленный текст и слова.
Показать список слов
| Слово | Кол-во | Частота |
|---|---|---|
| courses | 17 | 4,62% |
| programs | 8 | 2,17% |
| science | 7 | 1,90% |
| business | 6 | 1,63% |
| saylor | 5 | 1,36% |
| search | 4 | 1,09% |
| university | 4 | 1,09% |
| content | 3 | 0,82% |
| humanities | 3 | 0,82% |
| administration | 3 | 0,82% |
| computer | 3 | 0,82% |
| english | 3 | 0,82% |
| second | 3 | 0,82% |
| language | 3 | 0,82% |
| professional | 3 | 0,82% |
| development | 3 | 0,82% |
| social | 3 | 0,82% |
| specialization | 3 | 0,82% |
| categories | 2 | 0,54% |
| mathematics | 2 | 0,54% |
Индексация Готовность: 30%
Индексирование
Ошибок нет
Разрешено ли индексирование страницы
?
Проверяет, не закрыта ли страница от индексации через robots.txt, meta robots или X-Robots-Tag. Страница, закрытая от индексации, не появится в поисковой выдаче.
Анкоров на странице 75 оптимально. Поисковые роботы обязательно проиндексируют сайт.
Robots.txt
Найден корректный robots.txt
Файл управления сканированием сайта роботами
?
Robots.txt указывает поисковым роботам, какие страницы сканировать, а какие — нет. Ошибки в файле могут случайно закрыть важные разделы от индексации.
Robots.txt настроен корректно. Размер файла: 70905 байт. Загружен за: 1сек.
Проверяемая страница не запрещена в robots.txt.
Robots.txt доступен по постоянному адресу
Цепочка редиректов для файла robots.txt:
http://learn.saylor.org/robots.txt
301 MovedPermanently
https://learn.saylor.org/robots.txt
200 OK
Показать содержимое robots.txt
<!DOCTYPE html>
<html dir="ltr" lang="en" xml:lang="en">
<head>
<title></title>
<link rel="shortcut icon" href="//learn.saylor.org/pluginfile.php/1/theme_catawesome/favicon/1787165630/favicon-32x32.png" />
<meta name="apple-itunes-app" content="app-id=1481507148, app-argument=https://learn.saylor.org/robots.txt"/><link rel="manifest" href="https://learn.saylor.org/admin/tool/mobile/mobile.webmanifest.php" /><!-- Start Matomo Code -->
<noscript>
<p>
<img src="//catalyst-analytics.ca/piwik.php?idsite=41" style="border:0;" alt="" />
</p>
</noscript>
<script>
var _paq = _paq || [];
_paq.push(['setDocumentTitle', ""]);
_paq.push(['trackPageView']);
_paq.push(['enableLinkTracking']);
_paq.push(['enableHeartBeatTimer', 30]);
_paq.push(['setSecureCookie', true]);
function embedTrackingCode() {
var u='//catalyst-analytics.ca/';
var p='//catalyst-analytics.ca/';
_paq.push(['setTrackerUrl', u+'piwik.php']);
_paq.push(['setSiteId', 41]);
var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
g.type='text/javascript'; g.async=true; g.defer=true; g.src=p+'piwik.js'; s.parentNode.insertBefore(g,s);
}
if (window.addEventListener) {
window.addEventListener("load", embedTrackingCode, false);
} else if (window.attachEvent) {
window.attachEvent("onload", embedTrackingCode);
} else {
embedTrackingCode();
}
</script>
<!-- End Matomo Code --><!-- Start Google Universal Code -->
<script>
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','//www.google-analytics.com/analytics.js','ga');
ga('create', 'G-SX772VLBFX', {'siteSpeedSampleRate': 50});
ga('set', 'anonymizeIp', true);
ga('send', {'hitType' : 'pageview',
'page' : '/',
'title' : ''
});
</script>
<!-- End Google Universal Code --><!-- Start Google Tag Manager Code -->
<script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
'//www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
})(window,document,'script','dataLayer','AW-979422157');
</script>
<!-- End Google Tag Manager Code --><meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="keywords" content="moodle, " />
<link rel="stylesheet" type="text/css" href="https://learn.saylor.org/theme/yui_combo.php?rollup/3.18.1/yui-moodlesimple-min.css" /><script id="firstthemesheet" type="text/css">/** Required in order to fix style inclusion problems in IE with YUI **/</script><link rel="stylesheet" type="text/css" href="https://learn.saylor.org/theme/styles.php/catawesome/1787165630_1787102127/all" />
<script>
//<![CDATA[
var M = {}; M.yui = {};
M.pageloadstarttime = new Date();
M.cfg = {"wwwroot":"https:\/\/learn.saylor.org","apibase":"https:\/\/learn.saylor.org\/r.php\/api","homeurl":{},"sesskey":"rdD84sRH0G","sessiontimeout":"28800","sessiontimeoutwarning":"1200","themerev":"1787165630","slasharguments":1,"theme":"catawesome","iconsystemmodule":"core\/icon_system_fontawesome","jsrev":"1787165630","admin":"admin","svgicons":true,"usertimezone":"America\/New_York","language":"en_us","courseId":1,"courseContextId":2,"contextid":1,"contextInstanceId":0,"langrev":1787165630,"templaterev":"1787165630","siteId":1,"userId":0};var yui1ConfigFn = function(me) {if(/-skin|reset|fonts|grids|base/.test(me.name)){me.type='css';me.path=me.path.replace(/\.js/,'.css');me.path=me.path.replace(/\/yui2-skin/,'/assets/skins/sam/yui2-skin')}};
var yui2ConfigFn = function(me) {var parts=me.name.replace(/^moodle-/,'').split('-'),component=parts.shift(),module=parts[0],min='-min';if(/-(skin|core)$/.test(me.name)){parts.pop();me.type='css';min=''}
if(module){var filename=parts.join('-');me.path=component+'/'+module+'/'+filename+min+'.'+me.type}else{me.path=component+'/'+component+'.'+me.type}};
YUI_config = {"debug":false,"base":"https:\/\/learn.saylor.org\/lib\/yuilib\/3.18.1\/","comboBase":"https:\/\/learn.saylor.org\/theme\/yui_combo.php?","combine":true,"filter":null,"insertBefore":"firstthemesheet","groups":{"yui2":{"base":"https:\/\/learn.saylor.org\/lib\/yuilib\/2in3\/2.9.0\/build\/","comboBase":"https:\/\/learn.saylor.org\/theme\/yui_combo.php?","combine":true,"ext":false,"root":"2in3\/2.9.0\/build\/","patterns":{"yui2-":{"group":"yui2","configFn":yui1ConfigFn}}},"moodle":{"name":"moodle","base":"https:\/\/learn.saylor.org\/theme\/yui_combo.php?m\/1787165630\/","combine":true,"comboBase":"https:\/\/learn.saylor.org\/theme\/yui_combo.php?","ext":false,"root":"m\/1787165630\/","patterns":{"moodle-":{"group":"moodle","configFn":yui2ConfigFn}},"filter":null,"modules":{"moodle-core-handlebars":{"condition":{"trigger":"handlebars","when":"after"}},"moodle-core-blocks":{"requires":["base","node","io","dom","dd","dd-scroll","moodle-core-dragdrop","moodle-core-notification"]},"moodle-core-dragdrop":{"requires":["base","node","io","dom","dd","event-key","event-focus","moodle-core-notification"]},"moodle-core-maintenancemodetimer":{"requires":["base","node"]},"moodle-core-lockscroll":{"requires":["plugin","base-build"]},"moodle-core-notification":{"requires":["moodle-core-notification-dialogue","moodle-core-notification-alert","moodle-core-notification-confirm","moodle-core-notification-exception","moodle-core-notification-ajaxexception"]},"moodle-core-notification-dialogue":{"requires":["base","node","panel","escape","event-key","dd-plugin","moodle-core-widget-focusafterclose","moodle-core-lockscroll"]},"moodle-core-notification-alert":{"requires":["moodle-core-notification-dialogue"]},"moodle-core-notification-confirm":{"requires":["moodle-core-notification-dialogue"]},"moodle-core-notification-exception":{"requires":["moodle-core-notification-dialogue"]},"moodle-core-notification-ajaxexception":{"requires":["moodle-core-notification-dialogue"]},"moodle-core-actionmenu":{"requires":["base","event","node-event-simulate"]},"moodle-core-chooserdialogue":{"requires":["base","panel","moodle-core-notification"]},"moodle-core-event":{"requires":["event-custom"]},"moodle-core_availability-form":{"requires":["base","node","event","event-delegate","panel","moodle-core-notification-dialogue","json"]},"moodle-course-dragdrop":{"requires":["base","node","io","dom","dd","dd-scroll","moodle-core-dragdrop","moodle-core-notification","moodle-course-coursebase","moodle-course-util"]},"moodle-course-util":{"requires":["node"],"use":["moodle-course-util-base"],"submodules":{"moodle-course-util-base":{},"moodle-course-util-section":{"requires":["node","moodle-course-util-base"]},"moodle-course-util-cm":{"requires":["node","moodle-course-util-base"]}}},"moodle-course-management":{"requires":["base","node","io-base","moodle-core-notification-exception","json-parse","dd-constrain","dd-proxy","dd-drop","dd-delegate","node-event-delegate"]},"moodle-course-categoryexpander":{"requires":["node","event-key"]},"moodle-form-dateselector":{"requires":["base","node","overlay","calendar"]},"moodle-form-shortforms":{"requires":["node","base","selector-css3","moodle-core-event"]},"moodle-question-searchform":{"requires":["base","node"]},"moodle-question-chooser":{"requires":["moodle-core-chooserdialogue"]},"moodle-availability_cohort-form":{"requires":["base","node","event","moodle-core_availability-form"]},"moodle-availability_completion-form":{"requires":["base","node","event","moodle-core_availability-form"]},"moodle-availability_coursecompleted-form":{"requires":["base","node","event","moodle-core_availability-form"]},"moodle-availability_date-form":{"requires":["base","node","event","io","moodle-core_availability-form"]},"moodle-availability_grade-form":{"requires":["base","node","event","moodle-core_availability-form"]},"moodle-availability_group-form":{"requires":["base","node","event","moodle-core_availability-form"]},"moodle-availability_grouping-form":{"requires":["base","node","event","moodle-core_availability-form"]},"moodle-availability_othercompleted-form":{"requires":["base","node","event","moodle-core_availability-form"]},"moodle-availability_profile-form":{"requires":["base","node","event","moodle-core_availability-form"]},"moodle-availability_quizquestion-form":{"requires":["base","node","event","moodle-core_availability-form"]},"moodle-availability_relativedate-form":{"requires":["base","node","event","moodle-core_availability-form"]},"moodle-availability_role-form":{"requires":["base","node","event","moodle-core_availability-form"]},"moodle-mod_assign-history":{"requires":["node","transition"]},"moodle-mod_checklist-linkselect":{"requires":["node","event-valuechange"]},"moodle-mod_quiz-autosave":{"requires":["base","node","event","event-valuechange","node-event-delegate","io-form","datatype-date-format"]},"moodle-mod_quiz-dragdrop":{"requires":["base","node","io","dom","dd","dd-scroll","moodle-core-dragdrop","moodle-core-notification","moodle-mod_quiz-quizbase","moodle-mod_quiz-util-base","moodle-mod_quiz-util-page","moodle-mod_quiz-util-slot","moodle-course-util"]},"moodle-mod_quiz-util":{"requires":["node","moodle-core-actionmenu"],"use":["moodle-mod_quiz-util-base"],"submodules":{"moodle-mod_quiz-util-base":{},"moodle-mod_quiz-util-slot":{"requires":["node","moodle-mod_quiz-util-base"]},"moodle-mod_quiz-util-page":{"requires":["node","moodle-mod_quiz-util-base"]}}},"moodle-mod_quiz-modform":{"requires":["base","node","event"]},"moodle-mod_quiz-quizbase":{"requires":["base","node"]},"moodle-mod_quiz-questionchooser":{"requires":["moodle-core-chooserdialogue","moodle-mod_quiz-util","querystring-parse"]},"moodle-mod_quiz-toolboxes":{"requires":["base","node","event","event-key","io","moodle-mod_quiz-quizbase","moodle-mod_quiz-util-slot","moodle-core-notification-ajaxexception"]},"moodle-message_airnotifier-toolboxes":{"requires":["base","node","io"]},"moodle-editor_atto-rangy":{"requires":[]},"moodle-editor_atto-editor":{"requires":["node","transition","io","overlay","escape","event","event-simulate","event-custom","node-event-html5","node-event-simulate","yui-throttle","moodle-core-notification-dialogue","moodle-editor_atto-rangy","handlebars","timers","querystring-stringify"]},"moodle-editor_atto-plugin":{"requires":["node","base","escape","event","event-outside","handlebars","event-custom","timers","moodle-editor_atto-menu"]},"moodle-editor_atto-menu":{"requires":["moodle-core-notification-dialogue","node","event","event-custom"]},"moodle-report_eventlist-eventfilter":{"requires":["base","event","node","node-event-delegate","datatable","autocomplete","autocomplete-filters"]},"moodle-report_loglive-fetchlogs":{"requires":["base","event","node","io","node-event-delegate"]},"moodle-gradereport_history-userselector":{"requires":["escape","event-delegate","event-key","handlebars","io-base","json-parse","moodle-core-notification-dialogue"]},"moodle-qbank_editquestion-chooser":{"requires":["moodle-core-chooserdialogue"]},"moodle-tool_lp-dragdrop-reorder":{"requires":["moodle-core-dragdrop"]},"moodle-assignfeedback_editpdf-editor":{"requires":["base","event","node","io","graphics","json","event-move","event-resize","transition","querystring-stringify-simple","moodle-core-notification-dialog","moodle-core-notification-alert","moodle-core-notification-warning","moodle-core-notification-exception","moodle-core-notification-ajaxexception"]},"moodle-atto_accessibilitychecker-button":{"requires":["color-base","moodle-editor_atto-plugin"]},"moodle-atto_accessibilityhelper-button":{"requires":["moodle-editor_atto-plugin"]},"moodle-atto_align-button":{"requires":["moodle-editor_atto-plugin"]},"moodle-atto_bold-button":{"requires":["moodle-editor_atto-plugin"]},"moodle-atto_c4l-button":{"requires":["moodle-editor_atto-plugin"]},"moodle-atto_charmap-button":{"requires":["moodle-editor_atto-plugin"]},"moodle-atto_clear-button":{"requires":["moodle-editor_atto-plugin"]},"moodle-atto_collapse-button":{"requires":["moodle-editor_atto-plugin"]},"moodle-atto_emojipicker-button":{"requires":["moodle-editor_atto-plugin"]},"moodle-atto_emoticon-button":{"requires":["moodle-editor_atto-plugin"]},"moodle-atto_equation-button":{"requires":["moodle-editor_atto-plugin","moodle-core-event","io","event-valuechange","tabview","array-extras"]},"moodle-atto_generico-button":{"requires":["moodle-editor_atto-plugin"]},"moodle-atto_h5p-button":{"requires":["moodle-editor_atto-plugin"]},"moodle-atto_html-codemirror":{"requires":["moodle-atto_html-codemirror-skin"]},"moodle-atto_html-button":{"requires":["promise","moodle-editor_atto-plugin","moodle-atto_html-beautify","moodle-atto_html-codemirror","event-valuechange"]},"moodle-atto_html-beautify":{},"moodle-atto_htmlbootstrapeditor-button":{"requires":["moodle-editor_atto-plugin"]},"moodle-atto_htmlplus-codemirror":{"requires":["moodle-atto_htmlplus-codemirror-skin"]},"moodle-atto_htmlplus-button":{"requires":["moodle-editor_atto-plugin","moodle-atto_htmlplus-beautify","moodle-atto_htmlplus-codemirror","event-valuechange"]},"moodle-atto_htmlplus-beautify":{},"moodle-atto_image-button":{"requires":["moodle-editor_atto-plugin"]},"moodle-atto_indent-button":{"requires":["moodle-editor_atto-plugin"]},"moodle-atto_italic-button":{"requires":["moodle-editor_atto-plugin"]},"moodle-atto_link-button":{"requires":["moodle-editor_atto-plugin"]},"moodle-atto_managefiles-usedfiles":{"requires":["node","escape"]},"moodle-atto_managefiles-button":{"requires":["moodle-editor_atto-plugin"]},"moodle-atto_media-button":{"requires":["moodle-editor_atto-plugin","moodle-form-shortforms"]},"moodle-atto_noautolink-button":{"requires":["moodle-editor_atto-plugin"]},"moodle-atto_orderedlist-button":{"requires":["moodle-editor_atto-plugin"]},"moodle-atto_preview-button":{"requires":["moodle-editor_atto-plugin"]},"moodle-atto_recordrtc-button":{"requires":["moodle-editor_atto-plugin","moodle-atto_recordrtc-recording"]},"moodle-atto_recordrtc-recording":{"requires":["moodle-atto_recordrtc-button"]},"moodle-atto_rtl-button":{"requires":["moodle-editor_atto-plugin"]},"moodle-atto_strike-button":{"requires":["moodle-editor_atto-plugin"]},"moodle-atto_subscript-button":{"requires":["moodle-editor_atto-plugin"]},"moodle-atto_superscript-button":{"requires":["moodle-editor_atto-plugin"]},"moodle-atto_table-button":{"requires":["moodle-editor_atto-plugin","moodle-editor_atto-menu","event","event-valuechange"]},"moodle-atto_title-button":{"requires":["moodle-editor_atto-plugin"]},"moodle-atto_underline-button":{"requires":["moodle-editor_atto-plugin"]},"moodle-atto_undo-button":{"requires":["moodle-editor_atto-plugin"]},"moodle-atto_unorderedlist-button":{"requires":["moodle-editor_atto-plugin"]}}},"gallery":{"name":"gallery","base":"https:\/\/learn.saylor.org\/lib\/yuilib\/gallery\/","combine":true,"comboBase":"https:\/\/learn.saylor.org\/theme\/yui_combo.php?","ext":false,"root":"gallery\/1787165630\/","patterns":{"gallery-":{"group":"gallery"}}}},"modules":{"core_filepicker":{"name":"core_filepicker","fullpath":"https:\/\/learn.saylor.org\/lib\/javascript.php\/1787165630\/repository\/filepicker.js","requires":["base","node","node-event-simulate","json","async-queue","io-base","io-upload-iframe","io-form","yui2-treeview","panel","cookie","datatable","datatable-sort","resize-plugin","dd-plugin","escape","moodle-core_filepicker","moodle-core-notification-dialogue"]},"core_comment":{"name":"core_comment","fullpath":"https:\/\/learn.saylor.org\/lib\/javascript.php\/1787165630\/comment\/comment.js","requires":["base","io-base","node","json","yui2-animation","overlay","escape"]}},"logInclude":[],"logExclude":[],"logLevel":null};
M.yui.loader = {modules: {}};
//]]>
</script>
<!-- ============================================================
SAYLOR UNIVERSITY — LEARN SITE
Additional HTML HEAD
Last organized: May 4 2026
============================================================
TABLE OF CONTENTS
-----------------
1. CSS — Quiz Password Field
2. JS — Google Tag Manager: Google Ads + GA4
3. JS — Google Code Prettify: Syntax Highlighting
5. JS — Course Catalog: List View Badge Injection
6. JS — Program Catalog: Icon Badge + Read More Toggle
============================================================ -->
<!-- ============================================================
1. CSS — QUIZ PASSWORD FIELD
Hides the show/hide password (eye icon) toggle on the
quiz password input field. Two selectors target the same
element via different specificity paths for reliability.
============================================================ -->
<style>
#fitem_id_quizpassword > div.col-lg-9.col-md-8.form-inline.align-items-center.felement.p-0 > div:nth-child(1) > div > a.btn.btn-link.icon-no-margin.p-1.ml-1 > i {
display: none;
}
[data-passwordunmaskid="id_quizpassword"] > div > a > i.fa-eye {
display: none;
}
</style>
<!-- ============================================================
2. JS — GOOGLE TAG MANAGER: GOOGLE ADS + GA4
Loads GTM and configures two tags:
- Google Ads (AW-979422157)
- Google Analytics 4 (G-SX772VLBFX)
Reads Moodle's global M.cfg.userid to pass a user_id
to GA4 when a logged-in user is present. Sends GA4
without user_id for guests/logged-out users.
============================================================ -->
<script async src="https://www.googletagmanager.com/gtag/js?id=AW-979422157"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
// Moodle provides a global JS object 'M' that contains the current User ID
var userID = (typeof M !== 'undefined' && M.cfg && M.cfg.userid > 0) ? M.cfg.userid : null;
// Configure Google Ads
gtag('config', 'AW-979422157');
// Configure Google Analytics 4
// Only send user_id if it's not null
if (userID) {
gtag('config', 'G-SX772VLBFX', { 'user_id': userID });
} else {
gtag('config', 'G-SX772VLBFX');
}
</script>
<!-- ============================================================
3. JS — GOOGLE CODE PRETTIFY: SYNTAX HIGHLIGHTING
Loads the Prettify JS library from CDN to enable
color syntax highlighting on any element with
class="prettyprint". Also loads the CSS language
extension since it is not included in the core
library by default. The DOMContentLoaded event
ensures Prettify runs only after the full page
has loaded, processing all prettyprint elements.
Core library handles: JavaScript, HTML, XML, Java
CSS extension handles: CSS syntax specifically
Usage: <pre class="prettyprint">code here</pre>
For CSS: <pre class="prettyprint lang-css">
For line numbers: add class "linenums"
============================================================ -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/prettify/r298/prettify.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/prettify/r298/lang-css.min.js"></script>
<script>
document.addEventListener('DOMContentLoaded', function() {
prettyPrint();
});
</script>
<!-- ============================================================
5. JS — COURSE CATALOG: LIST VIEW BADGE INJECTION
Converts the course catalog grid cards into compact
horizontal list rows. Each row shows a navy square
with a white open book icon, the course name, and an arrow.
MutationObserver handles AJAX-loaded cards on /course/index.php
============================================================ -->
<script>
(function() {
var bookSVG = '<svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="#ffffff" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M2 3h6a4 4 0 0 1 4 4v14a3 3 0 0 0-3-3H2z"/><path d="M22 3h-6a4 4 0 0 0-4 4v14a3 3 0 0 1 3-3h7z"/></svg>';
function injectBadges() {
document.querySelectorAll('.category-course-list-all .courses-card').forEach(function(card) {
if (card.dataset.badged) return;
var cardInner = card.querySelector('.card-inner');
var cardBody = card.querySelector('.card-body');
if (!cardInner || !cardBody) return;
var badge = document.createElement('div');
badge.className = 'catalog-course-badge';
badge.innerHTML = bookSVG;
cardInner.insertBefore(badge, cardBody);
var arrow = document.createElement('span');
arrow.className = 'catalog-course-arrow';
arrow.textContent = '→';
cardInner.appendChild(arrow);
card.dataset.badged = '1';
});
}
document.addEventListener('DOMContentLoaded', function() {
injectBadges();
var observer = new MutationObserver(function() {
injectBadges();
});
observer.observe(document.body, {
childList: true,
subtree: true
});
});
})();
</script>
<!-- ============================================================
6. JS — PROGRAM CATALOG: ICON BADGE + READ MORE TOGGLE
1. Injects a navy icon badge with stacked layers SVG
into each program card on the specialization catalog page.
2. Adds read more / read less toggle on long descriptions
(clamps to 80px, expands on click, orange link style).
============================================================ -->
<script>
document.addEventListener('DOMContentLoaded', function() {
var layersSVG = '<svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="#ffffff" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polygon points="12 2 2 7 12 12 22 7 12 2"/><polyline points="2 17 12 22 22 17"/><polyline points="2 12 12 17 22 12"/></svg>';
/* ── Inject icon badge into each program title ── */
document.querySelectorAll('.programbox .programname').forEach(function(nameEl) {
var badge = document.createElement('div');
badge.style.cssText = 'width:40px;height:40px;min-width:40px;background:#152233;border-radius:8px;display:inline-flex;align-items:center;justify-content:center;vertical-align:middle;margin-right:12px;flex-shrink:0;';
badge.innerHTML = layersSVG;
nameEl.insertBefore(badge, nameEl.firstChild);
nameEl.style.display = 'flex';
nameEl.style.alignItems = 'center';
});
/* ── Read more / read less toggle ── */
document.querySelectorAll('.programbox .summary').forEach(function(summary) {
var fullHeight = summary.scrollHeight;
var clampHeight = 80;
if (fullHeight <= clampHeight) return;
summary.style.maxHeight = clampHeight + 'px';
summary.style.overflow = 'hidden';
summary.style.position = 'relative';
var toggle = document.createElement('a');
toggle.textContent = 'Read more';
toggle.href = '#';
toggle.style.cssText = 'display:inline-block;margin-top:6px;font-size:0.85rem;font-weight:600;color:#f87c12;text-decoration:none;font-family:"Open Sans",sans-serif;';
var expanded = false;
toggle.addEventListener('click', function(e) {
e.preventDefault();
expanded = !expanded;
summary.style.maxHeight = expanded ? fullHeight + 'px' : clampHeight + 'px';
toggle.textContent = expanded ? 'Read less' : 'Read more';
});
summary.parentNode.insertBefore(toggle, summary.nextSibling);
});
});
</script>
<!-- ============================================================
7. JS — MOBILE SCROLL FIX: EDIT PROFILE PAGE
Moodle's drawer or MathJax JS sets touch-action: none on
the body element, which blocks all touch scrolling on
mobile devices. This fix targets the edit profile page
only (body#page-user-edit) and does two things:
1. Removes touch-action: none immediately on DOM load
2. Uses a MutationObserver to watch the body's style
attribute and remove touch-action: none if anything
tries to re-apply it after page load
Scoped to page-user-edit only — no effect on any other
page or on desktop users.
============================================================ -->
<script>
document.addEventListener('DOMContentLoaded', function() {
if (document.body.id === 'page-user-edit') {
document.body.style.removeProperty('touch-action');
var observer = new MutationObserver(function() {
if (document.body.style.touchAction === 'none') {
document.body.style.removeProperty('touch-action');
}
});
observer.observe(document.body, { attributes: true, attributeFilter: ['style'] });
}
});
</script>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<!-- Open Graph -->
<meta property="og:title" content="" />
<meta property="og:type" content="website" />
<meta property="og:url" content="https://learn.saylor.org/robots.txt" />
<meta property="og:image" content="https://resources.saylor.org/og/default-1200x1200.png" />
<meta property="og:image:secure_url" content="https://resources.saylor.org/og/default-1200x1200.png" />
<meta property="og:image:type" content="image/png" />
<meta property="og:image:width" content="1200" />
<meta property="og:image:height" content="1200" />
<meta property="og:description" content="" />
<meta property="og:site_name" content="Saylor University" />
<meta name="twitter:card" content="summary_large_image" />
<meta name="twitter:site" content="Saylor University" />
<meta name="twitter:title" content="" />
<meta name="twitter:description" content="" />
<meta name="twitter:image" content="https://resources.saylor.org/og/default-1200x1200.png" />
<meta name="twitter:creator" content="@saylordotorg">
<meta name="twitter:url" content="https://learn.saylor.org/robots.txt">
<!-- End Open Graph -->
<link rel="preconnect" href="https://fonts.googleapis.com"> <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin> <link href="https://fonts.googleapis.com/css2?family=Comfortaa:wght@400;700&family=Inter:ital,wght@0,400;0,500;0,600;0,700;1,400&family=Open+Sans:ital,wght@0,400;0,600;1,400&family=Raleway:wght@400;500;600;700&display=swap" rel="stylesheet">
</head>
<body id="page-robots.txt" class="format-site chrome dir-ltr lang-en_us yui-skin-sam yui3-skin-sam learn-saylor-org pagelayout-standard course-1 context-1 notloggedin theme uses-drawers hamburger-left" >
<div class="toast-wrapper mx-auto py-0 fixed-top" role="status" aria-live="polite"></div>
<div id="page-wrapper" class="d-print-block">
<div>
<a class="sr-only sr-only-focusable" href="#maincontent">Skip to main content</a>
</div><script src="https://learn.saylor.org/lib/javascript.php/1787165630/lib/polyfills/polyfill.js"></script>
<script src="https://learn.saylor.org/theme/yui_combo.php?rollup/3.18.1/yui-moodlesimple-min.js"></script><script src="https://learn.saylor.org/theme/jquery.php/core/jquery-3.7.1.min.js"></script>
<script src="https://learn.saylor.org/lib/javascript.php/1787165630/lib/javascript-static.js"></script>
<script>
//<![CDATA[
document.body.className += ' jsenabled';
//]]>
</script>
<script src='https://learn.saylor.org/lib/editor/atto/plugins/htmlbootstrapeditor/content.js'></script>
<nav class="fixed-top navbar navbar-expand moodle-has-zindex" aria-label="Site navigation">
<div data-region="drawer-toggle" class="drawer-toggle hamburger-left">
<button aria-expanded="false" aria-controls="nav-drawer" type="button" class="navbar-toggler aabtn d-block" data-action="toggle-drawer" data-side="left" data-preference="drawer-open-nav"><i class="icon fa fa-bars fa-fw " aria-hidden="true" ></i><span class="sr-only">Side panel</span></button>
</div>
<a href="https://learn.saylor.org" class="navbar-brand d-flex align-items-center m-0 p-0 aabtn has-logo has-compact-logo
">
<span class="logo">
<img src="//learn.saylor.org/pluginfile.php/1/theme_catawesome/logo/1787165630/saylor_university_blue%20%281%29.png" alt="Saylor University">
</span>
<span class="logo-compact">
<img src="//learn.saylor.org/pluginfile.php/1/theme_catawesome/logocompact/1787165630/saylor_university_blue.png" alt="Saylor University">
</span>
</a>
<ul class="navbar-nav d-none d-md-flex">
<!-- my_courses -->
<li class="primary-navigation">
<nav class="moremenu navigation">
<ul id="moremenu-6a88b17a797dd-navbar-nav" role="menubar" class="nav more-nav navbar-nav">
<li data-key="home" class="nav-item" role="none" data-forceintomoremenu="false">
<a role="menuitem" class="nav-link active "
href="https://learn.saylor.org/"
aria-current="true"
data-disableactive="true"
>
Home
</a>
</li>
<li data-key="" class="nav-item" role="none" data-forceintomoremenu="false">
<a role="menuitem" class="nav-link "
href="https://www.saylor.org"
data-disableactive="true"
tabindex="-1"
>
Main Site
</a>
</li>
<li class="dropdown nav-item" role="none" data-forceintomoremenu="false">
<a class="dropdown-toggle nav-link " id="drop-down-6a88b17a795ba" role="menuitem" data-toggle="dropdown"
aria-haspopup="true" aria-expanded="false" href="#" aria-controls="drop-down-menu-6a88b17a795ba"
tabindex="-1"
>
Courses & Programs
</a>
<div class="dropdown-menu" role="menu" id="drop-down-menu-6a88b17a795ba" aria-labelledby="drop-down-6a88b17a795ba">
<a class="dropdown-item" role="menuitem" href="https://learn.saylor.org/course/index.php?categoryid=all" data-disableactive="true" tabindex="-1"
>
All Categories
</a>
<a class="dropdown-item" role="menuitem" href="https://learn.saylor.org/course/index.php?categoryid=82" data-disableactive="true" tabindex="-1"
>
Arts and Humanities
</a>
<a class="dropdown-item" role="menuitem" href="https://learn.saylor.org/course/index.php?categoryid=6" data-disableactive="true" tabindex="-1"
>
Business Administration
</a>
<a class="dropdown-item" role="menuitem" href="https://learn.saylor.org/course/index.php?categoryid=9" data-disableactive="true" tabindex="-1"
>
Computer Science
</a>
<a class="dropdown-item" role="menuitem" href="https://learn.saylor.org/course/index.php?categoryid=29" data-disableactive="true" tabindex="-1"
>
English as a Second Language
</a>
<a class="dropdown-item" role="menuitem" href="https://learn.saylor.org/course/index.php?categoryid=19" data-disableactive="true" tabindex="-1"
>
Professional Development
</a>
<a class="dropdown-item" role="menuitem" href="https://learn.saylor.org/course/index.php?categoryid=84" data-disableactive="true" tabindex="-1"
>
Science and Mathematics
</a>
<a class="dropdown-item" role="menuitem" href="https://learn.saylor.org/course/index.php?categoryid=85" data-disableactive="true" tabindex="-1"
>
Social Sciences
</a>
<div class="dropdown-divider"></div>
<a class="dropdown-item" role="menuitem" href="https://learn.saylor.org/enrol/programs/catalogue/index.php" data-disableactive="true" tabindex="-1"
>
Specialization Programs
</a>
<a class="dropdown-item" role="menuitem" href="https://degrees.saylor.org" data-disableactive="true" tabindex="-1"
>
Degree Programs
</a>
</div>
</li>
<li class="dropdown nav-item" role="none" data-forceintomoremenu="false">
<a class="dropdown-toggle nav-link " id="drop-down-6a88b17a796bd" role="menuitem" data-toggle="dropdown"
aria-haspopup="true" aria-expanded="false" href="#" aria-controls="drop-down-menu-6a88b17a796bd"
tabindex="-1"
>
Help
</a>
<div class="dropdown-menu" role="menu" id="drop-down-menu-6a88b17a796bd" aria-labelledby="drop-down-6a88b17a796bd">
<a class="dropdown-item" role="menuitem" href="https://support.saylor.org" data-disableactive="true" tabindex="-1"
>
Help Center & FAQ
</a>
<a class="dropdown-item" role="menuitem" href="https://learn.saylor.org/mod/page/view.php?id=101593" data-disableactive="true" tabindex="-1"
>
文A Translate
</a>
<a class="dropdown-item" role="menuitem" href="https://learn.saylor.org/mod/page/view.php?id=101601" data-disableactive="true" tabindex="-1"
>
Verify Certificate
</a>
</div>
</li>
<li role="none" class="nav-item dropdown dropdownmoremenu d-none" data-region="morebutton">
<a class="dropdown-toggle nav-link " href="#" id="moremenu-dropdown-6a88b17a797dd" role="menuitem" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false" tabindex="-1">
More
</a>
<ul class="dropdown-menu dropdown-menu-left" data-region="moredropdown" aria-labelledby="moremenu-dropdown-6a88b17a797dd" role="menu">
</ul>
</li>
</ul>
</nav>
</li>
</ul>
<div id="usernavigation" class="navbar-nav ms-auto">
<div id="searchinput-navbar-6a88b17a802fb6a88b17a7a5f52" class="simplesearchform">
<div class="collapse" id="searchform-navbar">
<form autocomplete="off" action="https://learn.saylor.org/search/index.php" method="get" accept-charset="utf-8" class="mform d-flex flex-wrap align-items-center searchform-navbar">
<input type="hidden" name="context" value="1">
<div class="input-group" role="group" aria-labelledby="searchgrouplabel-6a88b17a802fb6a88b17a7a5f52">
<span id="searchgrouplabel-6a88b17a802fb6a88b17a7a5f52" class="sr-only">Site-wide search</span>
<label for="searchinput-6a88b17a802fb6a88b17a7a5f52">
<span class="sr-only">Search</span>
</label>
<input type="text"
id="searchinput-6a88b17a802fb6a88b17a7a5f52"
class="form-control withclear"
placeholder="Search"
aria-label="Search"
name="q"
data-region="input"
autocomplete="off"
>
<a class="btn btn-close"
data-action="closesearch"
data-toggle="collapse"
href="#searchform-navbar"
role="button"
title="Close"
>
<i class="icon fa fa-xmark fa-fw " aria-hidden="true" ></i>
<span class="sr-only">Close</span>
</a>
<div class="input-group-append">
<button type="submit" class="btn btn-submit" data-action="submit" title="Perform search">
<i class="icon fa fa-magnifying-glass fa-fw " aria-hidden="true" ></i>
<span class="sr-only">Perform search</span>
</button>
</div>
</div>
</form>
</div>
<a
class="btn btn-open rounded-0 nav-link"
data-toggle="collapse"
data-action="opensearch"
href="#searchform-navbar"
role="button"
aria-expanded="false"
aria-controls="searchform-navbar"
title="Toggle search input"
>
<i class="icon fa fa-magnifying-glass fa-fw " aria-hidden="true" ></i>
<span class="sr-only">Toggle search input</span>
</a>
</div>
<div class="d-flex align-items-stretch usermenu-container" data-region="usermenu">
<div class="usermenu">
<span class="login ps-2">
<a href="https://learn.saylor.org/login/index.php">Log in</a>
</span>
</div>
</div>
</div>
</nav>
<div id="page" data-region="mainpage" data-usertour="scroller" class="drawers drag-container">
<div id="topofscroll" class="main-inner">
<div class="drawer-toggles d-flex">
</div>
<header id="page-header" class="header-maxwidth d-print-none">
<div class="w-100">
<div class="d-flex flex-wrap">
<div id="page-navbar">
</div>
<div class="ms-auto d-flex">
</div>
<div id="course-header">
</div>
</div>
<div class="d-flex align-items-center">
<div class="me-auto d-flex flex-column">
<div>
<div class="page-context-header d-flex flex-wrap align-items-center mb-2">
<div class="page-header-headings">
</div>
</div>
</div>
<div>
</div>
</div>
<div class="header-actions-container ms-auto" data-region="header-actions-container">
</div>
</div>
</div>
</header>
<div id="page-content" class="pb-6 d-print-block clearfix">
<div id="region-main-box">
<div id="region-main">
<span class="notifications" id="user-notifications"></span>
<div role="main"><span id="maincontent"></span>Custom Clean URL is not enable.</div>
</div>
</div>
</div>
</div>
<footer id="page-footer" data-region="mainpage" class="bg-inverse">
<div data-region="footer-container-popover">
<button class="btn btn-icon btn-primary icon-no-margin btn-footer-popover" data-action="footer-popover" aria-label="Show footer">
<i class="icon fa fa-question fa-fw " aria-hidden="true" ></i>
</button>
</div>
<div class="footer-content-popover container" data-region="footer-content-popover">
<div class="footer-section p-3 border-bottom">
<div class="logininfo">
<div class="logininfo">You are not logged in. (<a href="https://learn.saylor.org/login/index.php">Log in</a>)</div>
</div>
<div class="tool_usertours-resettourcontainer">
</div>
<div class="policiesfooter"><a href="https://learn.saylor.org/admin/tool/policy/viewall.php?returnurl=https%3A%2F%2Flearn.saylor.org%2Frobots.txt">Policies</a></div><div><a class="mobilelink" href="https://www.saylor.org/mobile">Get the mobile app</a></div>
<!-- ============================================================
SAYLOR UNIVERSITY — LEARN SITE
Before Close
Last organized: July 24, 2026
============================================================
TABLE OF CONTENTS
-----------------
1. JS — Zendesk Widget
2. JS — YouTube Playlist Player
3. JS — Accessibility: New Window aria-label
4. JS — Simplify Profile Edit/Signup Forms (hides fields;
also blocks ALL profile picture uploads — see notes below)
5. JS — Gradebook Setup: Category Toggle Crash Fix
============================================================ -->
<!-- Start of Saylor University Zendesk Widget script -->
<script id="ze-snippet" src="https://static.zdassets.com/ekr/snippet.js?key=fc5f608d-148b-468e-a93e-1b651b72c26a"></script>
<script type="text/javascript">
// Define settings BEFORE any zE() call so the widget initializes with them.
window.zESettings = {
"webWidget": {
"position": {
"horizontal": "left"
},
"offset": {
"horizontal": "50px"
},
"cookies": false,
"analytics": false,
"errorReporting": false,
"zIndex": "1",
"navigation": {
"popoutButton": {
"enabled": "true"
}
},
"color": {
"theme": "#f87c12",
"launcher": "#152233",
"button": "#152233",
"header": "#152233"
},
"helpCenter": {
"searchPlaceholder": {
"*": "Search help center"
},
"title": {
"*": "Help Center"
}
},
"contactForm": {
"ticketForms": [
{
"id": "11663585340948"
}
]
}
}
}
zE('webWidget', 'setLocale', 'en-us');
// Hide Zendesk widget on mobile devices
window.addEventListener('load', function() {
if (window.innerWidth <= 767) {
zE('webWidget', 'hide');
}
});
</script>
<!-- End of Saylor University Zendesk Widget script -->
<!-- ============================================================
2. JS — YOUTUBE PLAYLIST PLAYER
Powers a custom YouTube playlist UI. On DOMContentLoaded:
- Reads all .playlist-item elements and their data-video IDs
- Clicking an item loads that video into #current-video
with autoplay and marks the item active
- When a video ends, automatically advances to the next
item in the playlist (loops back to start at the end)
Note: Bootstrap JS CDN tag is present but commented out.
============================================================ -->
<!-- Include Bootstrap JS and dependencies -->
<!-- script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/js/bootstrap.bundle.min.js"></script -->
<script>
document.addEventListener('DOMContentLoaded', function () {
const playlistItems = document.querySelectorAll('.playlist-item');
const currentVideo = document.getElementById('current-video');
const videoIds = Array.from(playlistItems).map(item => item.getAttribute('data-video'));
let currentIndex = 0;
const updateActiveItem = () => {
playlistItems.forEach(item => item.classList.remove('active'));
if (playlistItems[currentIndex]) {
playlistItems[currentIndex].classList.add('active');
}
};
playlistItems.forEach((item, index) => {
item.addEventListener('click', function () {
currentIndex = index;
const videoId = this.getAttribute('data-video');
if (currentVideo) {
currentVideo.src = `https://www.youtube.com/embed/${videoId}?autoplay=1`;
updateActiveItem();
}
});
});
if (currentVideo) {
currentVideo.addEventListener('ended', function () {
currentIndex = (currentIndex + 1) % videoIds.length;
currentVideo.src = `https://www.youtube.com/embed/${videoIds[currentIndex]}?autoplay=1`;
updateActiveItem();
});
}
updateActiveItem();
});
</script>
<!-- ============================================================
3. JS — ACCESSIBILITY: NEW WINDOW ARIA-LABEL
Flags links that open in a new window for screen readers.
Appends "(opens in a new window)" to the link's existing text
instead of replacing it, so the destination is preserved.
(aria-label REPLACES the accessible name, so a bare
"Opens in a new window" would hide the link's purpose — WCAG 2.4.4.)
Skips links that already carry an aria-label.
============================================================ -->
<script>
document.querySelectorAll('a[target="_blank"]').forEach(link => {
if (link.getAttribute('aria-label')) return; // don't clobber existing labels
const text = (link.textContent || '').trim();
link.setAttribute('aria-label', text
? `${text} (opens in a new window)`
: 'Opens in a new window');
});
</script>
<!-- ============================================================
4. JS — SIMPLIFY PROFILE EDIT/SIGNUP FORMS
(The descriptive block comment below is INSIDE the script tags so
it does NOT render on the page. Do not move it outside the tags.)
============================================================ -->
<script>
/**
* Simplify profile edit/signup forms — hide non-essential fields
*
* Runs on: signup (page-login-signup), admin edit (page-user-editadvanced),
* and self edit (page-user-edit).
*
* Removes by element ID (not CSS) so the fields are fully absent from the
* DOM/form submission, not just visually hidden:
* - General section: city, country, timezone, description
* - Whole sections: picture upload, additional names, optional section
* - Custom profile field categories 0, 3, 4, 5, 6 (category 1 is kept —
* update this list if new custom field categories are added)
*
* NOTE: id_moodle_picture removal means NO ONE — including admins on
* editadvanced.php — can upload/change a profile picture through the
* standard edit form while this runs. To change a picture, temporarily
* comment out this block, purge caches, make the edit, then restore.
*/
// Wrapped in an IIFE so nothing (e.g. removeById) leaks into the page's
// shared global scope and collides with other scripts.
(function () {
const removeById = (id) => document.getElementById(id)?.remove();
if (
document.getElementById('page-login-signup') ||
document.getElementById('page-user-editadvanced') ||
document.getElementById('page-user-edit')
) {
// Hide profile fields in the General section.
removeById('fitem_id_city');
removeById('fitem_id_country');
removeById('fitem_id_timezone');
removeById('fitem_id_description_editor');
// Hide profile sections.
removeById('id_moodle_picture');
removeById('id_moodle_additional_names');
removeById('id_moodle_optional');
// Hide custom profile field categories (except category 1).
removeById('id_category_0');
removeById('id_category_0container');
removeById('id_category_3');
removeById('id_category_3container');
removeById('id_category_4');
removeById('id_category_4container');
removeById('id_category_5');
removeById('id_category_5container');
removeById('id_category_6');
removeById('id_category_6container');
}
// On the user profile view page, hide Forum Posts and Forum Discussions.
// Optional chaining guards against links that are not wrapped in an <li>,
// which would otherwise throw a TypeError on every profile page load.
if (document.getElementById('page-user-profile')) {
document.querySelectorAll('a[href*="forum/user.php"]').forEach(a => a.closest('li')?.remove());
}
})();
</script>
<!-- ============================================================
5. JS — GRADEBOOK SETUP: CATEGORY TOGGLE CRASH FIX
============================================================ -->
<script>
/**
* Fix: Gradebook setup category toggle crash for categories without aggregation rows
*
* Moodle's core_grades/edittree_index JS assumes every grade category has an
* aggregation total row with a data-aggregationforcategory attribute. Categories
* that are excluded from course totals (e.g. "Ungraded Activities") don't render
* this row, causing toggleCategory() to crash on null and breaking expand/collapse.
*
* This script intercepts clicks on affected toggles (capture phase, before Moodle's
* handler fires) and handles the expand/collapse manually. Categories that DO have
* an aggregation row are unaffected and fall through to Moodle's native handler.
*
* Note: collapsed state is not persisted to localStorage for affected categories,
* so they will always reload expanded. This is a known limitation.
*
* Added: 2026-06-29
* Affects: Gradebook setup page only (.setup-grades table)
*/
document.addEventListener('click', function(e) {
var toggle = e.target.closest('.toggle-category');
if (!toggle) return;
var gradebookSetup = toggle.closest('.setup-grades');
if (!gradebookSetup) return;
var category = toggle.dataset.category;
var aggregationRow = gradebookSetup.querySelector("[data-aggregationforcategory='" + category + "']");
if (aggregationRow) return; // Has aggregation row — let Moodle handle it normally
// No aggregation row — intercept before Moodle crashes
e.stopPropagation();
e.preventDefault();
var isCollapsing = toggle.getAttribute('aria-expanded') === 'true';
var targetRows = gradebookSetup.querySelectorAll(toggle.dataset.target);
if (isCollapsing) {
toggle.setAttribute('aria-expanded', 'false');
toggle.dataset.target = "[data-hidden-by='" + category + "']";
targetRows.forEach(function(row) {
row.dataset.hidden = 'true';
row.dataset.hiddenBy = category;
});
} else {
toggle.setAttribute('aria-expanded', 'true');
toggle.dataset.target = '.' + category + "[data-hidden='false']";
targetRows.forEach(function(row) {
row.dataset.hidden = 'false';
row.dataset.hiddenBy = '';
});
}
}, true);
</script><script>
//<![CDATA[
var require = {
baseUrl : 'https://learn.saylor.org/lib/requirejs.php/1787165630/',
// We only support AMD modules with an explicit define() statement.
enforceDefine: true,
skipDataMain: true,
waitSeconds : 0,
paths: {
jquery: 'https://learn.saylor.org/lib/javascript.php/1787165630/lib/jquery/jquery-3.7.1.min',
jqueryui: 'https://learn.saylor.org/lib/javascript.php/1787165630/lib/jquery/ui-1.13.2/jquery-ui.min',
jqueryprivate: 'https://learn.saylor.org/lib/javascript.php/1787165630/lib/requirejs/jquery-private'
},
// Custom jquery config map.
map: {
// '*' means all modules will get 'jqueryprivate'
// for their 'jquery' dependency.
'*': { jquery: 'jqueryprivate' },
// 'jquery-private' wants the real jQuery module
// though. If this line was not here, there would
// be an unresolvable cyclic dependency.
jqueryprivate: { jquery: 'jquery' }
}
};
//]]>
</script>
<script src="https://learn.saylor.org/lib/javascript.php/1787165630/lib/requirejs/require.min.js"></script>
<script>
//<![CDATA[
M.util.js_pending("core/first");
require(['core/first'], function() {
require(['core/prefetch'])
;
M.util.js_pending('filter_mathjaxloader/loader'); require(['filter_mathjaxloader/loader'], function(amd) {amd.configure({"mathjaxconfig":"MathJax.Hub.Config({\r\n config: [\"Accessible.js\", \"Safe.js\"],\r\n errorSettings: { message: [\"!\"] },\r\n skipStartupTypeset: true,\r\n messageStyle: \"none\",\r\n CommonHTML: { linebreaks: { automatic: true } },\r\n \"HTML-CSS\": { linebreaks: { automatic: true } },\r\n SVG: { linebreaks: { automatic: true } }\r\n});","lang":"en"}); M.util.js_complete('filter_mathjaxloader/loader');});;
require(["media_videojs/loader"], function(loader) {
loader.setUp('en-GB');
});;
M.util.js_pending('filter_glossary/autolinker'); require(['filter_glossary/autolinker'], function(amd) {amd.init(); M.util.js_complete('filter_glossary/autolinker');});;
require(['core/moremenu'], function(moremenu) {
moremenu(document.querySelector('#moremenu-6a88b17a797dd-navbar-nav'));
});
;
require(
[
'jquery',
],
function(
$
) {
var uniqid = "6a88b17a802fb6a88b17a7a5f52";
var container = $('#searchinput-navbar-' + uniqid);
var opensearch = container.find('[data-action="opensearch"]');
var input = container.find('[data-region="input"]');
var submit = container.find('[data-action="submit"]');
submit.on('click', function(e) {
if (input.val() === '') {
e.preventDefault();
}
});
container.on('hidden.bs.collapse', function() {
opensearch.removeClass('d-none');
input.val('');
});
container.on('show.bs.collapse', function() {
opensearch.addClass('d-none');
});
container.on('shown.bs.collapse', function() {
input.focus();
});
});
;
require(['core/usermenu'], function(UserMenu) {
UserMenu.init();
});
;
require(['theme_boost/footer-popover'], function(FooterPopover) {
FooterPopover.init();
});
;
require(['theme_catawesome/drawernew'], function(mod) {
mod.init();
});
;
require(['theme_boost/loader']);
require(['theme_boost/drawer'], function(mod) {
mod.init();
});
require(['theme_catawesome/waiting'], function(Waiting) {
Waiting.init();
});
require(['theme_catawesome/metismenu', 'jquery'], function(metisMenu, $) {
$(".metismenu").metisMenu();
});
$(document).ready(function(){
$("#topbutton").hide();
$(function (scrollTop) {
$(window).scroll(function () {
if ($(this).scrollTop() > 100) {
$('#topbutton').fadeIn();
} else {
$('#topbutton').fadeOut();
}
});
$('#topbutton').click(function () {
$('body,html').animate({
scrollTop: 0
}, 800);
return false;
});
});
});
;
M.util.js_pending('core/notification'); require(['core/notification'], function(amd) {amd.init(1, []); M.util.js_complete('core/notification');});;
M.util.js_pending('core/log'); require(['core/log'], function(amd) {amd.setConfig({"level":"warn"}); M.util.js_complete('core/log');});;
M.util.js_pending('core/page_global'); require(['core/page_global'], function(amd) {amd.init(); M.util.js_complete('core/page_global');});;
M.util.js_pending('core/utility'); require(['core/utility'], function(amd) {M.util.js_complete('core/utility');});;
M.util.js_pending('core/storage_validation'); require(['core/storage_validation'], function(amd) {amd.init(null); M.util.js_complete('core/storage_validation');});
M.util.js_complete("core/first");
});
//]]>
</script>
<script src="https://cdn.jsdelivr.net/npm/mathjax@2.7.9/MathJax.js?delayStartupUntil=configured"></script>
<script src="https://learn.saylor.org/lib/javascript.php/1787165630/theme/catawesome/javascript/theme.js"></script>
<script src="https://learn.saylor.org/theme/javascript.php/catawesome/1787165630/footer"></script>
<script src="https://learn.saylor.org/lib/javascript.php/1787165630/admin/tool/htmlbootstrapeditor/content.js"></script>
<script src="https://learn.saylor.org/lib/javascript.php/1787165630/admin/tool/htmlbootstrapeditor/editor.js"></script>
<script>
//<![CDATA[
M.str = {"moodle":{"lastmodified":"Last modified","name":"Name","error":"Error","info":"Information","yes":"Yes","no":"No","cancel":"Cancel","confirm":"Confirm","areyousure":"Are you sure?","closebuttontitle":"Close","unknownerror":"Unknown error","file":"File","url":"URL","collapseall":"Collapse all","expandall":"Expand all"},"repository":{"type":"Type","size":"Size","invalidjson":"Invalid JSON string","nofilesattached":"No files attached","filepicker":"File picker","logout":"Logout","nofilesavailable":"No files available","norepositoriesavailable":"Sorry, none of your current repositories can return files in the required format.","fileexistsdialogheader":"File exists","fileexistsdialog_editor":"A file with that name has already been attached to the text you are editing.","fileexistsdialog_filemanager":"A file with that name has already been attached","renameto":"Rename to \"{$a}\"","referencesexist":"There are {$a} links to this file","select":"Select"},"admin":{"confirmdeletecomments":"Are you sure you want to delete the selected comment(s)?","confirmation":"Confirmation"},"debug":{"debuginfo":"Debug info","line":"Line","stacktrace":"Stack trace"},"langconfig":{"labelsep":":"}};
//]]>
</script>
<script>
//<![CDATA[
(function() {M.util.help_popups.setup(Y);
M.util.js_pending('random6a88b17a7a5f55'); Y.on('domready', function() { M.util.js_complete("init"); M.util.js_complete('random6a88b17a7a5f55'); });
})();
//]]>
</script>
</div>
<div class="footer-section p-3">
<div>Powered by <a href="https://moodle.com">Moodle</a></div>
</div>
</div>
<div class="container-fluid">
<div class="footer-lists row">
</div>
<div class="row">
<div class="col-md-12 col-lg-7">
<p style="margin-bottom:6px;">
<a href="https://saylor.org/PrivacyPolicy" target="_blank" rel="noopener" style="color:#223f86;font-size:12px;font-weight:600;text-decoration:none;margin-right:16px;">Privacy Policy</a>
<a href="https://saylor.org/TermsOfUse" target="_blank" rel="noopener" style="color:#223f86;font-size:12px;font-weight:600;text-decoration:none;">Terms of Use</a>
</p>
<p style="font-size:11px;color:#555;line-height:1.6;">
© Saylor University 2010-2026 except as otherwise noted. Excluding course final exams, content authored by Saylor University is available under a <a href="http://creativecommons.org/licenses/by/3.0/" target="_blank" rel="noopener" style="color:rgb(34,63,134);font-size:11px;">Creative Commons Attribution 3.0 Unported license</a>. Third-party materials are the copyright of their respective owners and shared under various licenses. See <a href="https://www.saylor.org/open/licensinginformation" target="_blank" rel="noopener" style="color:rgb(34,63,134);font-size:11px;">detailed licensing information</a>. Saylor University®, Saylor.org®, and Harnessing Technology to Make Education Free® are trade names of the Constitution Foundation, a 501(c)(3) organization through which our educational activities are conducted.
</p>
</div>
<div class="col-md-12 col-lg-5">
<div class="copyright ms-auto mb-3 d-lg-flex justify-content-end">
</div>
<div class="social-media">
<ul class="d-lg-flex align-items-center flex-wrap justify-content-end">
<li class="sm-01"><a href="ttps://www.facebook.com/SaylorUniversity" target="_blank"><i class="fa fa-brands fa-facebook"></i></a></li>
<li class="sm-02"><a href="https://twitter.com/saylordotorg" target="_blank"><i class="fa fa-brands fa-x-twitter"></i></a></li>
<li class="sm-03"><a href="https://www.instagram.com/saylordotorg" target="_blank"><i class="fa fa-brands fa-instagram"></i></a></li>
<li class="sm-04"><a href=" https://www.linkedin.com/school/saylor-university/" target="_blank"><i class="fa fa-brands fa-linkedin"></i></a></li>
<li class="sm-07"><a href="https://www.youtube.com/SaylorAcademy" target="_blank"><i class="fa fa-brands fa-youtube-play"></i></a></li>
</ul>
</div>
</div>
</div>
<div class="footer-content-debugging my-3">
</div>
</div>
</footer>
<!-- Modal -->
<div class="modal fade" id="loadingmodal" tabindex="-1" role="dialog" aria-labelledby="loadingmodallabel" aria-hidden="true" data-waiting="0">
<div class="modal-dialog modal-dialog-centered" role="document">
<div class="modal-content">
<div class="modal-body">
<h3>Fetching learning content...</h3>
<div class="waitloader"></div>
</div>
</div>
</div>
</div>
</div>
<div id="nav-drawer" data-region="drawer" class="hidden-print hidden-mobile moodle-has-zindex closed" aria-hidden="true" tabindex="-1">
<a href="https://learn.saylor.org/?redirect=0" class="navbar-brand drawer has-logo
">
<span class="logo">
<img src="//learn.saylor.org/pluginfile.php/1/theme_catawesome/logo/1787165630/saylor_university_blue%20%281%29.png" alt="Saylor University">
</span>
</a>
<nav class="mobile-custom-menu">
<ul class="metismenu">
<!-- custom_menu -->
<li class="nav-item">
<a class="nav-link" href="https://www.saylor.org" >Main Site</a>
</li><li class="dropdown nav-item">
<a class="dropdown-toggle nav-link" id="drop-down-6a88b17a815c66a88b17a7a5f53" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false" href="#" aria-controls="drop-down-menu-6a88b17a815c66a88b17a7a5f53">
Courses & Programs
</a>
<div class="dropdown-menu" role="menu" id="drop-down-menu-6a88b17a815c66a88b17a7a5f53" aria-labelledby="drop-down-6a88b17a815c66a88b17a7a5f53">
<a class="dropdown-item" role="menuitem" href="https://learn.saylor.org/course/index.php?categoryid=all" >All Categories</a>
<a class="dropdown-item" role="menuitem" href="https://learn.saylor.org/course/index.php?categoryid=82" >Arts and Humanities</a>
<a class="dropdown-item" role="menuitem" href="https://learn.saylor.org/course/index.php?categoryid=6" >Business Administration</a>
<a class="dropdown-item" role="menuitem" href="https://learn.saylor.org/course/index.php?categoryid=9" >Computer Science</a>
<a class="dropdown-item" role="menuitem" href="https://learn.saylor.org/course/index.php?categoryid=29" >English as a Second Language</a>
<a class="dropdown-item" role="menuitem" href="https://learn.saylor.org/course/index.php?categoryid=19" >Professional Development</a>
<a class="dropdown-item" role="menuitem" href="https://learn.saylor.org/course/index.php?categoryid=84" >Science and Mathematics</a>
<a class="dropdown-item" role="menuitem" href="https://learn.saylor.org/course/index.php?categoryid=85" >Social Sciences</a>
<div class="dropdown-divider" role="presentation"></div>
<a class="dropdown-item" role="menuitem" href="https://learn.saylor.org/enrol/programs/catalogue/index.php" >Specialization Programs</a>
<a class="dropdown-item" role="menuitem" href="https://degrees.saylor.org" >Degree Programs</a>
</div>
</li><li class="dropdown nav-item">
<a class="dropdown-toggle nav-link" id="drop-down-6a88b17a8160e6a88b17a7a5f54" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false" href="#" aria-controls="drop-down-menu-6a88b17a8160e6a88b17a7a5f54">
Help
</a>
<div class="dropdown-menu" role="menu" id="drop-down-menu-6a88b17a8160e6a88b17a7a5f54" aria-labelledby="drop-down-6a88b17a8160e6a88b17a7a5f54">
<a class="dropdown-item" role="menuitem" href="https://support.saylor.org" >Help Center & FAQ</a>
<a class="dropdown-item" role="menuitem" href="https://learn.saylor.org/mod/page/view.php?id=101593" >文A Translate</a>
<a class="dropdown-item" role="menuitem" href="https://learn.saylor.org/mod/page/view.php?id=101601" >Verify Certificate</a>
</div>
</li>
</ul>
</nav>
<nav class="list-group" aria-label="Site">
<ul class="metismenu">
<li class="nav-item">
<a class="list-group-item list-group-item-action nav-link " href="https://learn.saylor.org/" data-key="home" data-isexpandable="0" data-indent="0" data-showdivider="0" data-type="1" data-nodetype="1" data-collapse="0" data-forceopen="1" data-isactive="0" data-hidden="0" data-preceedwithhr="0" data-toggle="tooltip" data-placement="right"
title="Home">
<div class="ms-0">
<div class="media">
<span class="media-left">
<i class="icon fa icon-home fa-fw " aria-hidden="true" ></i>
</span>
<span class="media-body ">Home</span>
</div>
</div>
</a>
</li>
</ul>
</nav>
</div>
</div>
</body></html>
Sitemap
Кол-во: 0
XML-карта сайта для поисковиков
?
Sitemap.xml помогает поисковику быстрее находить и индексировать страницы. Особенно важен для крупных сайтов и новых страниц, на которые ещё нет входящих ссылок.
Robots.txt не содержит ссылку на карту сайта. Рекомендуется добавить карту сайта и указать ссылку на нее в robots.txt.
Внутренние ссылки
Кол-во: 49
Ссылки на другие страницы своего сайта
?
Внутренние ссылки распределяют ссылочный вес между страницами и помогают поисковику обходить сайт. Пустые анкоры и ссылки на запрещённые robots.txt страницы — типичные ошибки.
Внутренних ссылок на странице 49 оптимально.
Внутренние ссылки не запрещены к индексации в robots.txt.
На странице присутствуют изображения 2.
Показать внутренние ссылки
| Url | Анкор | Состояние | Анализировать |
|---|---|---|---|
| / |
Home
|
|
Анализировать url |
| /course/index.php?categoryid=all |
All Categories
|
|
Анализировать url |
| /course/index.php?categoryid=82 |
Arts and Humanities
|
|
Анализировать url |
| /course/index.php?categoryid=6 |
Business Administration
|
|
Анализировать url |
| /course/index.php?categoryid=9 |
Computer Science
|
|
Анализировать url |
| /course/index.php?categoryid=29 |
English as a Second Language
|
|
Анализировать url |
| /course/index.php?categoryid=19 |
Professional Development
|
|
Анализировать url |
| /course/index.php?categoryid=84 |
Science and Mathematics
|
|
Анализировать url |
| /course/index.php?categoryid=85 |
Social Sciences
|
|
Анализировать url |
| /enrol/programs/catalogue/index.php |
Specialization Programs
|
|
Анализировать url |
| /mod/page/view.php?id=101593 |
文A Translate
|
|
Анализировать url |
| /mod/page/view.php?id=101601 |
Verify Certificate
|
|
Анализировать url |
| /login/index.php |
Log in
|
|
Анализировать url |
| /login/index.php |
Log In / Sign Up →
|
|
Анализировать url |
| /course/index.php?categoryid=82 |
<div style="width:34px;height:34px;background:#fef3e8;border-radius:6px;display:flex;align-items:center;justify-content:center;flex-shrink:0;">
<i class="fa fa-book" style="color:#f87c12;font-size:16px;"></i>
</div>
<span style="font-size:1.05rem;font-weight:700;color:#152233;font-family:'Raleway',sans-serif;flex:1;line-height:1.2;">Arts & Humanities</span>
<span style="font-size:0.95rem;color:#bbb;flex-shrink:0;margin-right:4px;">12</span>
<span style="font-size:1rem;color:#f87c12;font-weight:700;">→</span>
|
|
Анализировать url |
| /course/index.php?categoryid=6 |
<div style="width:34px;height:34px;background:#fef3e8;border-radius:6px;display:flex;align-items:center;justify-content:center;flex-shrink:0;">
<i class="fa fa-line-chart" style="color:#f87c12;font-size:16px;"></i>
</div>
<span style="font-size:1.05rem;font-weight:700;color:#152233;font-family:'Raleway',sans-serif;flex:1;line-height:1.2;">Business Administration</span>
<span style="font-size:0.95rem;color:#bbb;flex-shrink:0;margin-right:4px;">51</span>
<span style="font-size:1rem;color:#f87c12;font-weight:700;">→</span>
|
|
Анализировать url |
| /course/index.php?categoryid=9 |
<div style="width:34px;height:34px;background:#fef3e8;border-radius:6px;display:flex;align-items:center;justify-content:center;flex-shrink:0;">
<i class="fa fa-code" style="color:#f87c12;font-size:16px;"></i>
</div>
<span style="font-size:1.05rem;font-weight:700;color:#152233;font-family:'Raleway',sans-serif;flex:1;line-height:1.2;">Computer Science</span>
<span style="font-size:0.95rem;color:#bbb;flex-shrink:0;margin-right:4px;">17</span>
<span style="font-size:1rem;color:#f87c12;font-weight:700;">→</span>
|
|
Анализировать url |
| /course/index.php?categoryid=29 |
<div style="width:34px;height:34px;background:#fef3e8;border-radius:6px;display:flex;align-items:center;justify-content:center;flex-shrink:0;">
<i class="fa fa-language" style="color:#f87c12;font-size:16px;"></i>
</div>
<span style="font-size:1.05rem;font-weight:700;color:#152233;font-family:'Raleway',sans-serif;flex:1;line-height:1.2;">English as a Second Language</span>
<span style="font-size:0.95rem;color:#bbb;flex-shrink:0;margin-right:4px;">5</span>
<span style="font-size:1rem;color:#f87c12;font-weight:700;">→</span>
|
|
Анализировать url |
| /course/index.php?categoryid=19 |
<div style="width:34px;height:34px;background:#fef3e8;border-radius:6px;display:flex;align-items:center;justify-content:center;flex-shrink:0;">
<i class="fa fa-briefcase" style="color:#f87c12;font-size:16px;"></i>
</div>
<span style="font-size:1.05rem;font-weight:700;color:#152233;font-family:'Raleway',sans-serif;flex:1;line-height:1.2;">Professional Development</span>
<span style="font-size:0.95rem;color:#bbb;flex-shrink:0;margin-right:4px;">45</span>
<span style="font-size:1rem;color:#f87c12;font-weight:700;">→</span>
|
|
Анализировать url |
| /course/index.php?categoryid=84 |
<div style="width:34px;height:34px;background:#fef3e8;border-radius:6px;display:flex;align-items:center;justify-content:center;flex-shrink:0;">
<i class="fa fa-calculator" style="color:#f87c12;font-size:16px;"></i>
</div>
<span style="font-size:1.05rem;font-weight:700;color:#152233;font-family:'Raleway',sans-serif;flex:1;line-height:1.2;">Science and Math</span>
<span style="font-size:0.95rem;color:#bbb;flex-shrink:0;margin-right:4px;">10</span>
<span style="font-size:1rem;color:#f87c12;font-weight:700;">→</span>
|
|
Анализировать url |
| /course/index.php?categoryid=85 |
<div style="width:34px;height:34px;background:#fef3e8;border-radius:6px;display:flex;align-items:center;justify-content:center;flex-shrink:0;">
<i class="fa fa-globe" style="color:#f87c12;font-size:16px;"></i>
</div>
<span style="font-size:1.05rem;font-weight:700;color:#152233;font-family:'Raleway',sans-serif;flex:1;line-height:1.2;">Social Science</span>
<span style="font-size:0.95rem;color:#bbb;flex-shrink:0;margin-right:4px;">19</span>
<span style="font-size:1rem;color:#f87c12;font-weight:700;">→</span>
|
|
Анализировать url |
| /course/index.php?categoryid=all |
View all courses →
|
|
Анализировать url |
| /mod/page/view.php?id=101600 |
<div style="width:3px;border-radius:4px;align-self:stretch;min-height:32px;background:#f87c12;flex-shrink:0;"></div>
<div style="flex:1;">
<div style="font-size:1.05rem;font-weight:700;color:#152233;font-family:'Raleway',sans-serif;line-height:1.2;">Administrative / Virtual Assistant</div>
<div style="font-size:0.92rem;color:#999;margin-top:3px;">7 courses</div>
</div>
<span style="font-size:1rem;color:#f87c12;font-weight:700;flex-shrink:0;">→</span>
|
|
Анализировать url |
| /mod/page/view.php?id=101595 |
<div style="width:3px;border-radius:4px;align-self:stretch;min-height:32px;background:#f87c12;flex-shrink:0;"></div>
<div style="flex:1;">
<div style="font-size:1.05rem;font-weight:700;color:#152233;font-family:'Raleway',sans-serif;line-height:1.2;">Bitcoin Economics</div>
<div style="font-size:0.92rem;color:#999;margin-top:3px;">6 courses</div>
</div>
<span style="font-size:1rem;color:#f87c12;font-weight:700;flex-shrink:0;">→</span>
|
|
Анализировать url |
| /mod/page/view.php?id=101599 |
<div style="width:3px;border-radius:4px;align-self:stretch;min-height:32px;background:#f87c12;flex-shrink:0;"></div>
<div style="flex:1;">
<div style="font-size:1.05rem;font-weight:700;color:#152233;font-family:'Raleway',sans-serif;line-height:1.2;">Business Essentials</div>
<div style="font-size:0.92rem;color:#999;margin-top:3px;">6 courses</div>
</div>
<span style="font-size:1rem;color:#f87c12;font-weight:700;flex-shrink:0;">→</span>
|
|
Анализировать url |
| /mod/page/view.php?id=101598 |
<div style="width:3px;border-radius:4px;align-self:stretch;min-height:32px;background:#f87c12;flex-shrink:0;"></div>
<div style="flex:1;">
<div style="font-size:1.05rem;font-weight:700;color:#152233;font-family:'Raleway',sans-serif;line-height:1.2;">Business Strategy & Leadership</div>
<div style="font-size:0.92rem;color:#999;margin-top:3px;">6 courses</div>
</div>
<span style="font-size:1rem;color:#f87c12;font-weight:700;flex-shrink:0;">→</span>
|
|
Анализировать url |
| /mod/page/view.php?id=103868 |
<div style="width:3px;border-radius:4px;align-self:stretch;min-height:32px;background:#f87c12;flex-shrink:0;"></div>
<div style="flex:1;">
<div style="font-size:1.05rem;font-weight:700;color:#152233;font-family:'Raleway',sans-serif;line-height:1.2;">Career Readiness</div>
<div style="font-size:0.92rem;color:#999;margin-top:3px;">5 courses</div>
</div>
<span style="font-size:1rem;color:#f87c12;font-weight:700;flex-shrink:0;">→</span>
|
|
Анализировать url |
| /mod/page/view.php?id=103867 |
<div style="width:3px;border-radius:4px;align-self:stretch;min-height:32px;background:#f87c12;flex-shrink:0;"></div>
<div style="flex:1;">
<div style="font-size:1.05rem;font-weight:700;color:#152233;font-family:'Raleway',sans-serif;line-height:1.2;">Emerging Supervisor</div>
<div style="font-size:0.92rem;color:#999;margin-top:3px;">4 courses</div>
</div>
<span style="font-size:1rem;color:#f87c12;font-weight:700;flex-shrink:0;">→</span>
|
|
Анализировать url |
| /mod/page/view.php?id=101597 |
<div style="width:3px;border-radius:4px;align-self:stretch;min-height:32px;background:#f87c12;flex-shrink:0;"></div>
<div style="flex:1;">
<div style="font-size:1.05rem;font-weight:700;color:#152233;font-family:'Raleway',sans-serif;line-height:1.2;">ESL for Business</div>
<div style="font-size:0.92rem;color:#999;margin-top:3px;">5 courses</div>
</div>
<span style="font-size:1rem;color:#f87c12;font-weight:700;flex-shrink:0;">→</span>
|
|
Анализировать url |
| /mod/page/view.php?id=101724 |
<div style="width:3px;border-radius:4px;align-self:stretch;min-height:32px;background:#f87c12;flex-shrink:0;"></div>
<div style="flex:1;">
<div style="font-size:1.05rem;font-weight:700;color:#152233;font-family:'Raleway',sans-serif;line-height:1.2;">ESL for Healthcare</div>
<div style="font-size:0.92rem;color:#999;margin-top:3px;">5 courses</div>
</div>
<span style="font-size:1rem;color:#f87c12;font-weight:700;flex-shrink:0;">→</span>
|
|
Анализировать url |
| /mod/page/view.php?id=101596 |
<div style="width:3px;border-radius:4px;align-self:stretch;min-height:32px;background:#f87c12;flex-shrink:0;"></div>
<div style="flex:1;">
<div style="font-size:1.05rem;font-weight:700;color:#152233;font-family:'Raleway',sans-serif;line-height:1.2;">Spreadsheet Mastery</div>
<div style="font-size:0.92rem;color:#999;margin-top:3px;">4 courses</div>
</div>
<span style="font-size:1rem;color:#f87c12;font-weight:700;flex-shrink:0;">→</span>
|
|
Анализировать url |
| /mod/page/view.php?id=101719 |
<div style="width:3px;border-radius:4px;align-self:stretch;min-height:32px;background:#f87c12;flex-shrink:0;"></div>
<div style="flex:1;">
<div style="font-size:1.05rem;font-weight:700;color:#152233;font-family:'Raleway',sans-serif;line-height:1.2;">Advanced Entrepreneurship</div>
<div style="font-size:0.92rem;color:#999;margin-top:3px;">5 courses</div>
</div>
<span style="font-size:1rem;color:#f87c12;font-weight:700;flex-shrink:0;">→</span>
|
|
Анализировать url |
| /mod/page/view.php?id=101720 |
<div style="width:3px;border-radius:4px;align-self:stretch;min-height:32px;background:#f87c12;flex-shrink:0;"></div>
<div style="flex:1;">
<div style="font-size:1.05rem;font-weight:700;color:#152233;font-family:'Raleway',sans-serif;line-height:1.2;">Advanced Leadership & Strategy</div>
<div style="font-size:0.92rem;color:#999;margin-top:3px;">5 courses</div>
</div>
<span style="font-size:1rem;color:#f87c12;font-weight:700;flex-shrink:0;">→</span>
|
|
Анализировать url |
| /enrol/programs/catalogue/index.php |
View all programs →
|
|
Анализировать url |
| /course/index.php?categoryid=all |
All Categories
|
|
Анализировать url |
| /course/index.php?categoryid=82 |
Arts and Humanities
|
|
Анализировать url |
| /course/index.php?categoryid=6 |
Business Administration
|
|
Анализировать url |
| /course/index.php?categoryid=9 |
Computer Science
|
|
Анализировать url |
| /course/index.php?categoryid=29 |
English as a Second Language
|
|
Анализировать url |
| /course/index.php?categoryid=19 |
Professional Development
|
|
Анализировать url |
| /course/index.php?categoryid=84 |
Science and Mathematics
|
|
Анализировать url |
| /course/index.php?categoryid=85 |
Social Sciences
|
|
Анализировать url |
| /enrol/programs/catalogue/index.php |
Specialization Programs
|
|
Анализировать url |
| /mod/page/view.php?id=101593 |
文A Translate
|
|
Анализировать url |
| /mod/page/view.php?id=101601 |
Verify Certificate
|
|
Анализировать url |
| / |
<div class="ms-0">
<div class="media">
<span class="media-left">
<i class="icon fa icon-home fa-fw " aria-hidden="true"></i>
</span>
<span class="media-body font-weight-bold">Home</span>
</div>
</div>
|
|
Анализировать url |
| /login/index.php |
Log in
|
|
Анализировать url |
| /admin/tool/policy/viewall.php?returnurl=https%3A%2F%2Flearn.saylor.org%2F |
Policies
|
|
Анализировать url |
| /ttps://www.facebook.com/SaylorUniversity |
<i class="fa fa-brands fa-facebook"></i>
|
|
Внешние ссылки
Кол-во: 15
Ссылки на сторонние сайты
?
Исходящие внешние ссылки передают часть ссылочного веса на чужие сайты. Ссылки на авторитетные ресурсы безопасны; ссылки на мусорные сайты могут навредить репутации страницы.
Внешних ссылок на странице 15 слишком много. Спрячьте лишние ссылки в тег noindex или атрибут rel='nofollow'!
Показать внешние ссылки
| Url | Анкор | Анализировать |
|---|---|---|
| saylor.org |
Main Site
|
Анализировать url |
| degrees.saylor.org |
Degree Programs
|
Анализировать url |
| support.saylor.org |
Help Center & FAQ
|
Анализировать url |
| saylor.org |
Main Site
|
Анализировать url |
| degrees.saylor.org |
Degree Programs
|
Анализировать url |
| support.saylor.org |
Help Center & FAQ
|
Анализировать url |
| saylor.org |
Get the mobile app
|
Анализировать url |
| moodle.com |
Moodle
|
Анализировать url |
| saylor.org |
Privacy Policy
|
Анализировать url |
| saylor.org |
Terms of Use
|
Анализировать url |
| creativecommons.org |
Creative Commons Attribution 3.0 Unported license
|
Анализировать url |
| saylor.org |
detailed licensing information
|
Анализировать url |
| twitter.com |
<i class="fa fa-brands fa-x-twitter"></i>
|
|
| instagram.com |
<i class="fa fa-brands fa-instagram"></i>
|
|
| youtube.com |
<i class="fa fa-brands fa-youtube-play"></i>
|
Анализировать url |
Конкуренты Готовность: 0%
Конкуренты в Яндексе
Кол-во: 0
Топ сайтов-конкурентов в Яндексе
?
Сайты, чаще всего появляющиеся в ТОПе Яндекса по запросам из семантического ядра этой страницы.
Мы не нашли у вас конкурентов в Яндексе. Сайт или очень молодой или плохо продвигается.
Конкурентов в ТОП-10 Яндекса не нашлось.
Конкуренты в Google
Кол-во: 0
Топ сайтов-конкурентов в Google
?
Сайты, чаще всего появляющиеся в ТОПе Google по запросам из семантического ядра этой страницы.
Конкуренты в Google тоже не найдены. Займитесь продвижением сайта!
Конкурентов в ТОП-10 Google не нашлось.
ЗоЗПП: права потребителей Готовность: 100%
Нарушения
Не выявлены
Признаков дистанционной продажи товаров (интернет-магазина) не обнаружено — требования ЗоЗПП о раскрытии информации продавца к сайту не применяются. Нарушений нет.
ФЗ-149: рекомендательные технологии Готовность: 100%
Нарушения
Не выявлены
Рекомендательные блоки («с этим покупают», «похожие товары» и т.п.) на сайте не обнаружены — требования ст. 10.7 ФЗ-149 к сайту не применяются. Нарушений нет.
ФЗ-38: реклама Готовность: 100%
Нарушения
Не выявлены
Рекламных тематик с обязательными оговорками (медицина, БАД, кредиты и займы, новостройки) на сайте не обнаружено. Нарушений нет.
ФЗ-436: защита детей Готовность: 100%
Нарушения
Не выявлены
Признаков информационной продукции (новости, видео, книги, игры, курсы) не обнаружено — обязательная возрастная маркировка по ФЗ-436 сайту не требуется. Нарушений нет.
Вердикт
Оптимизация сайта learn.saylor.org выполнена всего на 54%. Чтобы исправить ситуацию и попасть в ТОП необходимо:
Исправьте ошибки в мета-тегах.
Исправьте ошибки индексации.
Поделитесь с друзьями: