diff --git a/docs/reference/config.md b/docs/reference/config.md
index 0862004b6daf579c9188ee92ef0fb73d773d976d..3442afa9ec488c32d6126c853785ccd1fe39d271 100644
--- a/docs/reference/config.md
+++ b/docs/reference/config.md
@@ -115,15 +115,6 @@ instance:
 
 ## Параметры файла конфигурации {: #config_file_parameters }
 
-### cluster.tier.<tier_name\>.replication_factor {: #cluster_tier_tier_replication_factor }
-
-[Фактор репликации](../overview/glossary.md#replication_factor) тира *<tier_name\>*.
-
-Данные:
-
-* Тип: *int*
-* Значение по умолчанию: `1`
-
 ### cluster.tier.<tier_name\>.can_vote {: #cluster_tier_tier_can_vote }
 
 Признак тира *<tier_name\>*, определяющий возможность инстансов участвовать
@@ -138,37 +129,61 @@ instance:
 
 * [Динамическое переключение голосующих узлов в Raft](../architecture/raft_failover.md#raft_voter_failover)
 
-### instance.log.format {: #instance_log_format }
-<!-- https://www.tarantool.io/en/doc/2.11/reference/configuration/#cfg-logging-log-format -->
-
-Формат отладочного журнала.
+### cluster.tier.<tier_name\>.replication_factor {: #cluster_tier_tier_replication_factor }
 
-Возможные значения: `plain`, `json`
+[Фактор репликации](../overview/glossary.md#replication_factor) тира *<tier_name\>*.
 
 Данные:
 
-* Тип: *str*
-* Значение по умолчанию: `plain`
+* Тип: *int*
+* Значение по умолчанию: `1`
 
-### instance.memtx.memory {: #instance_memtx_memory }
-<!-- https://www.tarantool.io/en/doc/2.11/reference/configuration/#cfg-storage-memtx-memory -->
+### instance.iproto.max_concurrent_messages {: #instance_iproto_max_concurrent_messages }
+<!-- https://www.tarantool.io/en/doc/2.11/reference/configuration/#cfg-networking-net-msg-max -->
 
-Объем памяти *в байтах*, выделяемый для хранения кортежей. Когда
-достигается лимит использования памяти, запросы команд [INSERT](./sql/insert.md)
-и [UPDATE](./sql/update.md) начинают отклоняться с ошибкой *ER_MEMORY_ISSUE*.
-Сервер хранит в выделяемом объеме памяти только кортежи — для хранения индексов
-и информации о соединениях используется дополнительная память.
+Максимальное количество сообщений, которое Picodata обрабатывает параллельно.
 
-Минимальное значение — 33,554,432 байтов (32 МБ)
+Для обработки сообщений Picodata использует файберы. Чтобы загруженность
+файберов не влияла на производительность всей системы, Picodata ограничивает
+количество сообщений, обрабатываемых файберами, блокируя некоторые ожидающие
+запросы.
+
+На мощных системах можно *увеличить* значение `max_concurrent_messages`,
+тогда планировщик немедленно начнет обрабатывать ожидающие запросы.
+
+На слабых системах можно *уменьшить* значение `max_concurrent_messages`,
+тогда загруженность файберов может снизиться, хотя может потребоваться
+некоторое время, пока планировщик дождется завершения уже обрабатываемых
+запросов.
+
+Когда количество сообщений достигает `max_concurrent_messages`, Picodata
+приостанавливает обработку входящих пакетов, пока не обработает предыдущие
+сообщения. Это не прямое ограничение количества файберов, обрабатывающих
+сетевые сообщения — скорее, это общесистемное ограничение пропускной
+способности канала. В свою очередь, это приводит к ограничению количества
+входящих сетевых сообщений, которые обрабатывает поток процессора транзакций,
+и, как следствие, косвенно влияет на файберы, обрабатывающие сетевые сообщения.
+
+<!-- The number of fibers is smaller than the number of messages because messages
+can be released as soon as they are delivered, while incoming requests might
+not be processed until some time after delivery. -->
 
 Данные:
 
 * Тип: *int*
-* Значение по умолчанию: `67108864` (64 МБ)
+* Значение по умолчанию: `768`
 
-См. также:
+### instance.log.format {: #instance_log_format }
+<!-- https://www.tarantool.io/en/doc/2.11/reference/configuration/#cfg-logging-log-format -->
 
-* [picodata run --memtx-memory](cli.md#run_memtx_memory)
+Формат отладочного журнала.
+
+Возможные значения: `plain`, `json`
+
+Данные:
+
+* Тип: *str*
+* Значение по умолчанию: `plain`
 
 ### instance.memtx.checkpoint_count {: #instance_memtx_checkpoint_count }
 <!-- https://www.tarantool.io/en/doc/2.11/reference/configuration/#cfg-checkpoint-daemon-checkpoint-count -->
@@ -197,61 +212,25 @@ instance:
 * Тип: *float*
 * Значение по умолчанию: `3600.0` (1 час)
 
-### instance.vinyl.memory {: #instance_vinyl_memory }
-<!-- https://www.tarantool.io/en/doc/2.11/reference/configuration/#cfg-storage-vinyl-memory -->
-
-Максимальное количество оперативной памяти *в байтах*, которое использует
-движок хранения `vinyl`.
-
-Данные:
-
-* Тип: *int*
-* Значение по умолчанию: `134217728` (128 МБ)
+### instance.memtx.memory {: #instance_memtx_memory }
+<!-- https://www.tarantool.io/en/doc/2.11/reference/configuration/#cfg-storage-memtx-memory -->
 
-### instance.vinyl.cache {: #instance_vinyl_cache }
-<!-- https://www.tarantool.io/en/doc/2.11/reference/configuration/#cfg-storage-vinyl-cache -->
+Объем памяти *в байтах*, выделяемый для хранения кортежей. Когда
+достигается лимит использования памяти, запросы команд [INSERT](./sql/insert.md)
+и [UPDATE](./sql/update.md) начинают отклоняться с ошибкой *ER_MEMORY_ISSUE*.
+Сервер хранит в выделяемом объеме памяти только кортежи — для хранения индексов
+и информации о соединениях используется дополнительная память.
 
-Размер кэша *в байтах* для движка хранения `vinyl`.
+Минимальное значение — 33,554,432 байтов (32 МБ)
 
 Данные:
 
 * Тип: *int*
-* Значение по умолчанию: `134217728` (128 МБ)
-
-### instance.iproto.max_concurrent_messages {: #instance_iproto_max_concurrent_messages }
-<!-- https://www.tarantool.io/en/doc/2.11/reference/configuration/#cfg-networking-net-msg-max -->
-
-Максимальное количество сообщений, которое Picodata обрабатывает параллельно.
-
-Для обработки сообщений Picodata использует файберы. Чтобы загруженность
-файберов не влияла на производительность всей системы, Picodata ограничивает
-количество сообщений, обрабатываемых файберами, блокируя некоторые ожидающие
-запросы.
-
-На мощных системах можно *увеличить* значение `max_concurrent_messages`,
-тогда планировщик немедленно начнет обрабатывать ожидающие запросы.
-
-На слабых системах можно *уменьшить* значение `max_concurrent_messages`,
-тогда загруженность файберов может снизиться, хотя может потребоваться
-некоторое время, пока планировщик дождется завершения уже обрабатываемых
-запросов.
-
-Когда количество сообщений достигает `max_concurrent_messages`, Picodata
-приостанавливает обработку входящих пакетов, пока не обработает предыдущие
-сообщения. Это не прямое ограничение количества файберов, обрабатывающих
-сетевые сообщения — скорее, это общесистемное ограничение пропускной
-способности канала. В свою очередь, это приводит к ограничению количества
-входящих сетевых сообщений, которые обрабатывает поток процессора транзакций,
-и, как следствие, косвенно влияет на файберы, обрабатывающие сетевые сообщения.
-
-<!-- The number of fibers is smaller than the number of messages because messages
-can be released as soon as they are delivered, while incoming requests might
-not be processed until some time after delivery. -->
+* Значение по умолчанию: `67108864` (64 МБ)
 
-Данные:
+См. также:
 
-* Тип: *int*
-* Значение по умолчанию: `768`
+* [picodata run --memtx-memory](cli.md#run_memtx_memory)
 
 ### instance.pg.ssl {: #instance_pg_ssl }
 
@@ -268,3 +247,24 @@ SSL-сертификаты:
 
 * Тип: *bool*
 * Значение по умолчанию: `false`
+
+### instance.vinyl.cache {: #instance_vinyl_cache }
+<!-- https://www.tarantool.io/en/doc/2.11/reference/configuration/#cfg-storage-vinyl-cache -->
+
+Размер кэша *в байтах* для движка хранения `vinyl`.
+
+Данные:
+
+* Тип: *int*
+* Значение по умолчанию: `134217728` (128 МБ)
+
+### instance.vinyl.memory {: #instance_vinyl_memory }
+<!-- https://www.tarantool.io/en/doc/2.11/reference/configuration/#cfg-storage-vinyl-memory -->
+
+Максимальное количество оперативной памяти *в байтах*, которое использует
+движок хранения `vinyl`.
+
+Данные:
+
+* Тип: *int*
+* Значение по умолчанию: `134217728` (128 МБ)
diff --git a/hooks/check_sorting.py b/hooks/check_sorting.py
index e85fb12347e26efb59b45140e242343493d56707..906ea992ee44ba537a5023bf08d29f4b2ed9bcd7 100644
--- a/hooks/check_sorting.py
+++ b/hooks/check_sorting.py
@@ -9,12 +9,17 @@ from mkdocs.structure.pages import Page
 
 log = get_plugin_logger(os.path.basename(__file__))
 
+h3_pages = [
+    "reference/audit_events.md",
+    "reference/config.md",
+]
+
 
 def on_page_markdown(markdown: str, page: Page, config: MkDocsConfig, files: Files):
     if page.file.src_uri == "reference/cli.md":
         return reference_cli(markdown, page)
-    elif page.file.src_uri == "reference/audit_events.md":
-        return reference_audit_events(markdown, page)
+    elif page.file.src_uri in h3_pages:
+        return check_h3_sorting(markdown, page)
     elif page.file.src_uri == "architecture/rpc_api.md":
         return architecture_rpc_api(markdown, page)
 
@@ -42,7 +47,7 @@ def reference_cli(markdown: str, page: Page):
             log.info("\n" + "\n".join(diff))
 
 
-def reference_audit_events(markdown: str, page: Page):
+def check_h3_sorting(markdown: str, page: Page):
     lines: list[str] = re.sub("<!--.*?-->", "", markdown, flags=re.DOTALL).split("\n")
     h3: list[str] = list(filter(lambda line: line.startswith("### "), lines))